De ce WordPress inversează instrucțiunile condiționale?
În codul de bază al WordPress, deseori veți întâlni acest lucru:
if (1 == $someVar)
în loc de:
if ($someVar == 1)
Nu știu dacă prima metodă este un stil specific WordPress de programare, dar am observat-o doar în codul WP (fie el din nucleu sau cod de la terți).

Acest stil de codare este cunoscut sub numele de Yoda Condition și nu este specific WordPress. Am folosit același stil în C++, C# și chiar în codul JavaScript.
Principalul beneficiu al unei Yoda Condition este că preîntâmpină atribuirea accidentală a unei valori din cauza unei greșeli de tipar. Luați în considerare următoarea greșeală (deseori întâlnită):
if ( $some_variable = 1 ) {
// ...
}
Aceasta va fi întotdeauna evaluată ca true
, dar are și consecința suplimentară de a atribui valoarea 1
variabilei $some_variable
. Uneori, acest lucru este intenționat. În WordPress, în special, veți vedea adesea lucruri precum:
if ( $post = some_function( $_POST['id'] ) ) {
// ...
} else {
// ...
}
Scopul acestui cod este să atribuie o nouă valoare variabilei $post
, iar acest lucru funcționează deoarece funcția some_function()
utilizată va returna false
în caz de eroare.
Yoda Conditions (inversarea ordinii operatorului de egalitate ==
) vă protejează de atribuirea accidentală a valorilor atunci când nu ați intenționat acest lucru. Dacă faceți o greșeală și introduceți doar un =
în cod, veți primi o eroare deoarece nu puteți atribui către o valoare obișnuită:
if ( 1 = $some_variable ) {
// ...
}
După cum am spus, acest lucru nu este unic WordPress sau chiar PHP, totuși face parte din standardele de codare WordPress obligatorii. Dacă scrieți un plugin sau o temă pentru distribuție generală sau contribuiți la nucleul WordPress, trebuie să știți atât ce sunt Yoda Conditions, cât și cum să le utilizați.
