qui est meilleur?
function test($val = 'a') {
if($val == 'a') {
return true;
} else {
return false;
}
}
9 Réponses :
Ils sont les mêmes. Cependant, pour ce cas, je préfère:
function test($val = 'a') {
return ($val == 'a');
}
Je collerais avec le premier, plus le code (et facile à lire) est le meilleur. P>
sur ceux-ci, je préfère la seconde pour la clarté. Cependant, je préfère réellement
Je pense que cela revient à la façon dont la comparaison vous "se sent". J'utiliserais le premier s'il semblait que $ Val étant "A" était un cas particulier et la fonction est généralement renvoyée fausse. J'utiliserais le second s'il ressentait plus que c'était 50/50 de quelle manière cela irait. P>
pendant que vous lisez le deuxième bloc de code. Vous pouvez facilement comprendre qu'il renvoie false lorsque VAL n'est pas égal à 'A'. P>
Mais au premier bloc de code, il est un peu difficile de comprendre quand il retournera false. Ce n'est pas si difficile à cet exemple mais je suppose que votre si les clauses ne seront pas si simples. P>
dans PHP, si rien n'est fait dans une fonction et que la fin est atteinte, elle sera comme si elle renvoie false. À cause de cela, il n'est jamais nécessaire de retourner false si rien d'autre ne doit être exécuté à l'intérieur de la fonction. Cela nous laisse avec ceci:
function test($val = 'a') {
if($val == 'a')
return true;
else
return false;
}
Cela peut tous être vrai et précis, mais vos deux premiers exemples n'entraîneront pas le code clair et facile à comprendre pour toute personne autre qu'un expert PHP. Seul le troisième sera clair pour la plupart des programmeurs.
Cela étant dit, cet article concerne les programmeurs PHP. Son point est donc parfaitement valide. Et j'ai appris quelque chose de nouveau sur PHP aujourd'hui!
Je conviens que le troisième exemple est le plus logique, car cela implique l'existence de "retour faux". Mais ensuite, sachant et comprendre ce genre de choses sur un langage de programmation peut i> aider à écrire un code plus facile à comprendre et plus efficace, donc j'ai écrit cela.
Je crois vraiment que c'est ce qui est toutefois inventé à votre tentative de transmettre pour le code. Si vous regardez ceci:
function test($val = 'a') {
if($val !== 'a') {
return false;
}
else {
return true;
}
}
Votre (première) variante est un bon exemple du chemin heureux. en.wikipedia.org/wiki/happy_Path
'Pilule bleue ou pilule rouge ...' lol! Happy Path est toujours le meilleur chemin!
plutôt que: L'approche ci-dessous est meilleure, il n'ya plus de frais généraux de el / code> et le code est également court: p> function test($val = 'a')
{
return ($val == 'a');
}
Si vous ne retourniez pas boolean code> je choisirais le premier formulaire. Dans ce cas, je ferais simplement: return ($val == 'a');
Et si l'autre bloc a de nombreuses lignes et que je suppose qu'une partie d'une récursion? Cela me semble un peu déroutant (je ne peux pas sembler formater le code correctement dans les commentaires?):
nœud privé deletemin (noeud x) {si (x.left == null) retourner x.right; x.left = suppression (x.left); x.n = taille (x.left) + taille (x.right) + 1; retour x; } code>