我注意到很多PHP代码使用CONST == VARIABLE等条件语句。我长大的语法总是以相反的方式表达出来。这种结构有原因吗?
示例:
// this is the way I see it most typically represented in PHP
if ( false == $foobar ) { // do this }
// this is the way I normally do it
if ( $foobar == false ) { // do this }
答案 0 :(得分:8)
这是为了防止==
和=
之间的常见拼写错误,称为yoda条件。请考虑以下事项:
if( false = $foobar) {
这会导致错误,捕获被视为错误的内容,因为您无法为false
分配任何内容。相反:
if( $foobar = false) {
这是有效的语法,并且很容易犯错误。
但是,我通常更喜欢if( $foobar == false)
语法,因为单元测试应该能够捕获这些程序错误。
答案 1 :(得分:1)
通常这样做的方式正是大多数程序员所做的。第一个例子叫做yoda条件:
http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html
并不是常态。