为什么WordPress要颠倒条件语句?

时间:2013-01-04 作者:akTed

在WordPress的核心代码中,您经常会看到:

if (1 == $someVar)
与此相反:

if ($someVar == 1)
我不知道第一种方式是否是以WordPress为中心的编码风格,但我只在WP代码(核心代码或第三方代码)中注意到了这一点。

1 个回复
最合适的回答,由SO网友:EAMann 整理而成

这种编码风格被称为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的条件是什么以及如何使用它们

结束

相关推荐