Quelle est la meilleure pratique pour mettre fin à une autre déclaration sans condition d'autre? Considérez le code suivant:
if ($direction == 'up') {
code goes here...
}
else {
code goes here...
}
6 Réponses :
Il n'y a pas de Alors, la meilleure pratique sur si ... sinon code> déclaration.
Il n'y a qu'un si code> instruction pouvant être étendue avec else code> et elseif code> opérateurs. si code> instruction sans sinon code> condition est un si code> instruction sans un sinon code> condition : P> if (condition) {
//some code
}
C'est une sorte de réponse générique qui manque le point, je pense.
@Core je pense que c'est plutôt question qui a manqué le point;) Demandez-moi une certaine question et vous obtiendrez une certaine réponse
Je suis d'accord, la question n'est pas aussi claire que possible et, à cet égard, votre réponse est précise; Mais je préférerais résoudre la question que possible voter la mauvaise réponse.
Je pense que s'il n'y a rien à faire sur sinon code>, il n'y a pas besoin de else code> bloquer dans le code. Si le bloc sinon code> est inclus, cela signifie qu'elle a un but d'être là, le code est donc incomplet, s'il est vide. P>
n'écrivez pas vide Dans de nombreux cas, vous pouvez en réalité utiliser instruction de commutation : p> sinon code> s. Cela ferait simplement encombrer le code et c'est parfaitement évident ce que vous vouliez dire.
Mais, le ne serait-il pas code> dans ce cas d'une déclaration d'autre? :) Pour répondre à la question au goût de l'OP, vous souhaitez supprimer la déclaration par défaut. Comme il n'est pas nécessaire d'être dans le commutateur. Cependant, vous n'avez pas à écrire vide sinon code>. Vous devez juste les omettre.
Je pense qu'un commutateur est la meilleure option dans ce cas.
Je voudrais par défaut code> si "up" code> et "bas" code> était le seul autorisé valeurs.
@Core XII Excellente idée! Mis à jour.
Je ne peux pas prendre de crédit pour cela, c'est ainsi que D. . Et je préfère cela de cette façon. Si vous souhaitez un par défaut code> qui ne fait rien, vous devez explicitement le dire.
Je le fais parfois comme ça. Je ne suis pas inquiet que "laissé" code>
est interprété comme "down" code> car je valide toujours mon entrée, dans ce cas avec preg_match ('{^ vers le bas | down $}', $ direction) code>. Inargitarablement un commutateur code> code> est plus approprié ... mais je n'aime pas la syntaxe verbose. if ($direction == "up")
{
// code goes here...
}
else //if ($direction == "down")
{
// code goes here...
}
Ce n'est pas quelque chose qui peut prendre une réponse définitive. Voici ma prise, il serait intéressant de voir quelles autres opinions existent.
scénario 1: Test d'une condition booléenne forte> p> C'est le cas le plus simple: P> xxx pré> Spécifier une condition comme Scénario 2: Test d'un sous-ensemble d'états infinis forts> P> Nous sommes intéressés par des tests pour les conditions A et B (etc.), et nous pouvons être intéressés ou non dans ce qui se passe si aucun d'entre eux ne détient: P> sinon si code> serait redondant, et il est vraiment évident pour le lecteur ce que le code fait. Il n'y a pas d'argument pour utiliser else si code> dans ce cas. P> switch($direction) {
case 'up': break;
case 'down': break;
default: // put error handling here if you want
}
J'essaie de ne pas écrire pour attribuer un VaR à lorsque j'ai un gros morceau de logique que vous pourriez envisager "appartient "Dans l'if / sinon, je m'assure de structurer mon code de sorte que si la condition soit remplie, la fonction se termine, généralement en retournant: p> comme PhiHAG mentionné; utiliser un Et comme votre bon sens déjà dit, il n'y a pas de bonnes pratiques, mais il existe des bonnes pratiques, et je pense que c'est un. p> p> sinon code>. Déjà. Dans mon expérience, en utilisant else code> entraîne une logique moins lisible, en particulier lorsque si / ESSES est imbriquée. true code> ou false code> (ou tout autre simple cette valeur ou de cette valeur), j'utilise toujours: p> switch code> déclaration lorsque vous considérez elseif code>. p>
Pour autant que je sache, il n'est pas considéré comme une "mauvaise pratique" de ne pas inclure d'autre condition d'autre. Vous faites simplement ce que le script appelle, s'il ne devrait y avoir aucune réponse par défaut à quelque chose, alors n'en avez pas.