这种编码风格被称为Yoda条件,它不是WordPress特有的。我在C++、C#,甚至JavaScript代码中使用了相同的样式。
Yoda条件的主要好处是,它可以防止拼写错误导致的意外值分配。考虑以下(常见于野外)拼写错误:
if ( $some_variable = 1 ) {
// ...
}
这将始终评估为
true
, 但其额外后果是赋值
1
到
$some_variable
. 但有时这是故意的。特别是在WordPress中,您经常会看到以下内容:
if ( $post = some_function( $_POST[\'id\'] ) ) {
// ...
} else {
// ...
}
此代码的要点是为
$post
变量,因为
some_function()
正在使用的将返回
false
错误时。
Yoda条件(颠倒==
相等运算符)保护您在无意中分配值。如果你犯了一个错误=
在代码中,您将得到一个错误,因为您无法为常规值赋值:
if ( 1 = $some_variable ) {
// ...
}
正如我所说,这不是WordPress,甚至PHP所独有的,
however 它是
required WordPress coding standards. 如果你正在为通用发行版编写插件或主题,或者为core做贡献,你需要知道Yoda的条件是什么以及如何使用它们