Maison >développement back-end >tutoriel php >Explorez les opérateurs ternaires et les conditions Yoda dans les normes de codage WordPress
À ce stade de la série, nous avons couvert beaucoup de choses. Jusqu'à présent, nous avons abordé les sujets suivants :
Beaucoup de choses, non ?
Dans cet article en particulier, je pense que nous devrions éclaircir un peu les choses avant d'aborder le dernier sujet. Nous aborderons donc deux sujets très simples (souvent ignorés ou trop compliqués).
Plus précisément, nous parlerons de l'opérateur ternaire et des conditions Yoda.
Lors de l’écriture de code basé sur WordPress, les normes de codage stipulent strictement que nous devons d’abord viser la lisibilité. Directement du Codex :
De manière générale, la lisibilité est plus importante que l'intelligence ou la concision.
Mais il y a quelques nuances. Certains développeurs estiment que l'opérateur ternaire est un peu incompatible avec ce principe particulier, d'autant plus qu'il s'agit d'une autre façon d'écrire des déclarations if/else
, et si le développeur n'est pas familier avec l'écriture ou la lecture de l'opérateur ternaire, alors cela viole ce principe.
Nous en discuterons plus en profondeur plus tard.
Tout d'abord, pour ceux qui ne sont pas familiers, l'opérateur ternaire est une manière simplifiée d'écrire if/else
条件语句的简化方法。通常仅当条件是最简单的形式时以及仅当存在单个 if
和单个 else
des instructions conditionnelles. Généralement utilisé
lorsque la condition est dans sa forme la plus simple et
uniquement lorsqu'il y a un seul bloc if
et un seul bloc else
.
Par exemple, supposons que nous ayons une condition comme celle-ci :
$uses_gasoline = null; if ( 'hybrid' == $car_type ) { $uses_gasoline = false; } else { $uses_gasoline = true; } echo $uses_gasoline;
Bien sûr, c'est un exemple un peu artificiel, mais vous voyez l'idée. Après tout, je veux juste montrer comment convertir une telle condition en un formulaire à l'aide de l'opérateur ternaire.
Sur la base de l'exemple ci-dessus, vous pouvez effectuer les opérations suivantes :
$uses_gasoline = 'hybrid' == $car_type ? false : true; echo $uses_gasoline;
Est-ce que cela a du sens ? Une chose importante à noter : l'opérateur ternaire teste vrai (pas faux, évidemment). Pour ce que ça vaut, je trouve cela un peu comme lire une phrase. La première clause pose une question (évidemment ponctuée d'un point d'interrogation) et renvoie deux réponses possibles basées sur une évaluation conditionnelle.
Il y a un avertissement
是一个例外! empty()
pour vérifier si tout ce qui est enregistré dans le Codex est vrai :
Utilisez
car tester false ici est généralement plus intuitif.D'après mon expérience, c'est la seule fois où une évaluation négative est utilisée dans une instruction conditionnelle. Depuis que j'utilise l'opérateur ternaire, j'ai constaté que tester la valeur fausse rend souvent les calculs ternaires plus difficiles à déchiffrer.
De plus, je trouve qu'il est préférable de fournir une évaluation, peut-être deux évaluations dans un contexte très simple et clair.
Conditions Yoda Si vous y prêtez attention, vous remarquerez que je fais quelque chose que la plupart des langages de programmation (même les plateformes basées sur PHP en dehors de WordPress) ne font généralement pas :
La comparaison des conditions se fait en comparant la valeur à la variable ;
et nonl'inverse.
Traditionnellement, nous verrions quelque chose comme ceci :
$uses_gasoline = null;
if ( $car_type == 'hybrid' ) {
$uses_gasoline = false;
} else {
$uses_gasoline = true;
}
echo $uses_gasoline;
L'opérateur ternaire correspondant ressemble à ceci :
$uses_gasoline = $car_type == 'hybrid' ? false : true; echo $uses_gasoline;
Si la plupart des langages et plateformes de programmation
n'utilisent pas les conditions Yoda, alors pourquoi WordPress devrait-il le faire ?Dans l'exemple ci-dessus, si vous omettez un signe égal (admettez-le, cela arrive même aux plus expérimentés d'entre nous), vous obtiendrez une erreur d'analyse car vous ne pouvez pas attribuer à quelque chose comme Une telle constanteSelon le Codex Alimentarius :
true
。如果该语句是相反的( $the_force = true )
,则该赋值将完全有效,返回1
,导致 if 语句的计算结果为true
et vous pourriez courir après cette erreur à la place.
À mon avis, c'est une très, très bonne explication pour effectuer de telles comparaisons,surtout
dans des langages typés dynamiquement comme PHP et JavaScript.Que vous soyez d’accord ou non avec cette approche, elle fait partie de la norme et vous la verrez implémentée via le noyau WordPress, les thèmes, les plugins, les articles et plus encore.
Conclusion
Comme je l'ai mentionné au début, cet article particulier sera plus simple et plus direct que certains des autres sujets que nous avons abordés jusqu'à présent dans cette série.
À ce stade, il ne nous reste plus qu'un seul sujet majeur à aborder : les requêtes de bases de données.
Ensuite, nous passerons en revue tous les sujets abordés dans cette série pour résumer les principes que nous détaillons dans nos normes de codage. 🎜 🎜Mais d’abord, parlons des requêtes de base de données. 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!