2013-02-28 2 views
2

Почему логическая оценка выполняется в обратном порядке в следующем PHP-коде, а не в конце «false»?Булевая оценка в обратном порядке

while (false !== ($obj = readdir($dh))) { 
    // do something 
} 

(от одного из примеров пользователей в http://php.net/manual/en/function.unlink.php)

Я видел этот способ написания оценок в другом месте, но никогда не понимал, почему это делается. Я никогда не изучал информатику, так что это может быть настоящий вопрос.

+4

Личные предпочтения. – Eric

+2

Некоторые компании имеют стандарты кодирования, где сначала ставятся константы (false в этом случае). Это делается для того, чтобы избежать ошибки при ошибочном назначении вместо сравнения. –

+1

Возможный дубликат [Переменная позиция в сравнении в PHP] (http://stackoverflow.com/questions/12560627/variable-position-in-comparision-in-php) – deceze

ответ

7

Личные предпочтения, поэтому вы не ошибочно присваиваете значение вместо сравнения.

Например

// doesn't generate an error, hard to track 
if($value = false) 
... 

но

// fatal error, you know that you did = instead of == 
if(false = $value) 
Смежные вопросы