7
votes

En utilisant si ... sinon ... ou juste si ... pour déterminer ce qui est retourné

qui est meilleur?

function test($val = 'a') {
    if($val == 'a') {
        return true;
    } else {
        return false;
    }
}


1 commentaires

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; }


9 Réponses :


22
votes

Ils sont les mêmes. Cependant, pour ce cas, je préfère:

function test($val = 'a') {
    return ($val == 'a');
}


0 commentaires

0
votes

Je collerais avec le premier, plus le code (et facile à lire) est le meilleur.


0 commentaires

9
votes

sur ceux-ci, je préfère la seconde pour la clarté. Cependant, je préfère réellement xxx


0 commentaires

8
votes

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.


0 commentaires

0
votes

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'.

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.


0 commentaires

3
votes

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;
}


3 commentaires

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 aider à écrire un code plus facile à comprendre et plus efficace, donc j'ai écrit cela.



2
votes

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;
    }
}


2 commentaires

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!



0
votes

plutôt que: xxx pré>

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');
}


0 commentaires

1
votes

Si vous ne retourniez pas boolean code> je choisirais le premier formulaire. Dans ce cas, je ferais simplement:

return ($val == 'a');


0 commentaires