条件语句中的顺序

时间:2012-06-24 22:46:59

标签: php

  

可能重复:
  php false place in condition

我注意到很多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 }

2 个答案:

答案 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

并不是常态。