2012-09-17 7 views
3

Lorsque j'affiche un message d'erreur en php, je le fais habituellement comme ça,En php, est-ce que "return false" fait quoi que ce soit après une déclaration d'écho?

if($query){ 
    // Success code 
}else{ 
    // Error message 
    $error_msg = "An error occurred."; 
    return false; 
} 

et je fais écho à la variable $error_msg dans la page html front-end. Je me demandais simplement si return false après que la variable fasse réellement quelque chose, ou est-ce simplement inutile de le mettre là? J'essaie d'optimiser mon code et je voulais juste m'assurer! Merci beaucoup d'avance!

+1

Dépend de ce que l'appelant attend. Mais on devrait utiliser des exceptions si possible à la place. –

Répondre

3

Oui, il indique à la fonction d'arrêter l'exécution et de renvoyer une valeur "false". Donc ça fait quelque chose. Que ce soit ou non quelque chose d'utile dépend de votre programmation.

Si vous ne disposez pas de lignes exécutables après l'écho et que la fonction n'est pas nécessaire pour renvoyer une valeur, cela ne servira à rien.

Si cela rend plus clair aux lecteurs que "c'est un arrêt/point de défaillance" cependant. Et un jour, vous voudrez peut-être piéger si cela a fonctionné ou échoué - donc le laisser en dedans le rend plus clair. Vous pouvez également étendre la fonction sans réfléchir et devez réajuster les retours - encore une fois, le laisser dans le facilite. Par contre, il y a aussi l'ancien style de programmation des jours C/Assembler qui vous permet d'avoir seulement une entrée et un point de sortie pour toutes les fonctions qui facilitent la récupération de place. Pas une exigence avec PHP, mais ce style le rend agréable et soigné. Dans ce cas, définissez la valeur de retour (si nécessaire) et revenez à la fin.

Alors, allez avec qui convient à votre style - mais pensez-y. Tout faire vierge et minamlistic (c'est-à-dire laisser tomber la ligne que vous n'en avez pas strictement besoin) ne peut pas toujours être la meilleure approche.

1

Le point de retour false est de sorte que vous pouvez facilement tester une fonction pour voir si elle a fonctionné - sans avoir besoin d'entrer dans les messages d'erreur potentiels et autres.

Une fonction qui retourne false pour un FAIL peut être utilisé de la manière suivante:

if(someFunction($var)) 
{ 
    do stuff for function working... 
} 
else 
{ 
    // function failed. Do other stuff. 
} 

Il est également intuitif qu'une fonction retourne false quand il échoue. Il peut encore être utilisé comme ceci:

$foo=someFunction($var); 
if($foo) 
{ 
    again, function has worked. 
}//... etc 

Alors que la même fonction retour La fonction a échoué ne pouvait pas être utilisé dans tis de manière intuitive.

Questions connexes