Maison >développement back-end >tutoriel php >Explorez les opérateurs ternaires et les conditions Yoda dans les normes de codage WordPress

Explorez les opérateurs ternaires et les conditions Yoda dans les normes de codage WordPress

WBOY
WBOYoriginal
2023-09-03 22:29:08592parcourir

探索 WordPress 编码标准中的三元运算符和 Yoda 条件

À ce stade de la série, nous avons couvert beaucoup de choses. Jusqu'à présent, nous avons abordé les sujets suivants :

  • Conventions de dénomination et paramètres de fonction
  • Utilisation de guillemets simples et doubles
  • Indentation, utilisation de l'espace et espaces de fin
  • Styles d'accolades, expressions régulières et balises PHP

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.


Un mot sur les conditions WordPress

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.


Opérateur ternaire

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é

uniquement

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.


Au-delà de cela,

voici

comment vous utilisez l'opérateur ternaire dans votre travail WordPress quotidien

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 non

l'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 ?

Selon le Codex Alimentarius : true。如果该语句是相反的 ( $the_force = true ),则该赋值将完全有效,返回 1,导致 if 语句的计算结果为 true

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 constante

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.

Pour cette raison, je vous recommande fortement de commencer à le mettre en œuvre dans votre propre travail.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn