6

可能重复:
条件中的 php 错误位置

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

2 回答 2

9

这是为了防止==和之间的常见拼写错误=,称为尤达条件。考虑以下:

if( false = $foobar) {

这将导致一个错误,捕获被视为错误的内容,因为您无法将任何内容分配给false. 相反:

if( $foobar = false) { 

这是有效的语法,而且很容易犯错误。

但是,我通常更喜欢if( $foobar == false)语法,因为单元测试应该能够捕获这些程序错误。

于 2012-06-24T22:48:22.183 回答
1

你通常这样做的方式正是大多数程序员的做法。第一个例子称为尤达条件:

http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html

这不是常态。

于 2012-06-24T22:48:11.403 回答