Dans le code principal de WordPress, vous voyez souvent ceci:
if (1 == $someVar)
par opposition à ceci:
if ($someVar == 1)
Je ne sais pas si le premier moyen est un style de codage axé sur WordPress, mais je ne l'ai remarqué que dans le code WP (code de base ou code tiers).
Ce style de codage est connu sous le nom de "condition Yoda" et n’a rien de spécifique à WordPress. J'ai utilisé le même style en C++, C # et même en code JavaScript.
Le principal avantage d'une condition de Yoda est d'empêcher toute attribution accidentelle de valeur par une faute de frappe. Considérez la typo suivante (souvent vue de la nature):
if ( $some_variable = 1 ) {
// ...
}
Ceci sera toujours évalué à true
, mais aura la conséquence supplémentaire d'attribuer la valeur 1
à $some_variable
. Parfois, c'est intentionnel, cependant. Dans WordPress en particulier, vous verrez souvent des choses comme:
if ( $post = some_function( $_POST['id'] ) ) {
// ...
} else {
// ...
}
Le point de ce code est d'affecter une nouvelle valeur à la variable $post
, et cela fonctionne car la some_function()
utilisée retournera false
en cas d'erreur.
Les conditions Yoda (en inversant l'ordre de l'opérateur d'égalité ==
) vous protègent contre l'attribution accidentelle de valeurs lorsque vous ne le vouliez pas. Si vous faites une erreur et ne mettez qu'un =
dans le code, vous obtiendrez une erreur car vous ne pouvez pas affecter à une valeur régulière:
if ( 1 = $some_variable ) {
// ...
}
Comme je l’ai dit, ce n’est pas propre à WordPress, ni même à PHP, cependant il fait partie du Normes de codage WordPress requises . Si vous écrivez un plugin ou un thème pour la distribution générale, ou contribuez au noyau, vous devez savoir ce que sont les conditions de Yoda et comment les utiliser.