问题描述
在 WordPress 的核心代码中,您经常会看到:
if (1 == $someVar)
与此相反:
if ($someVar == 1)
我不知道第一种方式是否是 WordPress-centric 编码风格,但是我只注意到 WP 代码 (核心或 3rd-party 代码) 。
最佳解决方案
这种编码风格被称为 Yoda 条件,它不是 WordPress 的具体内容。我在 C++,C#甚至 JavaScript 代码中使用了相同的风格。
Yoda 条件的主要优点是它可以防止错字发生意外的价值分配。考虑以下 (often-seen-in-the-wild) 错字:
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,但它是 required WordPress coding standards 的一部分。如果您正在编写一个插件或主题以进行普遍分发,或者为核心贡献,那么您需要知道 Yoda 条件是什么以及如何使用它们
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。