О влиянии приоритета операций в PHP

Допустим, что у нас есть функция returnNumberOrFalse(), которая возвращает значение, например — число, и мы хотим получить значение этой функции, записать его в переменную и вывести её в браузер, при условии, что функция не вернула false.

if($foo = returnNumberOrFalse() !== false){
echo $foo;
}

Этот код будет всегда выводить: 0 или 1 , т.к. сначала выполняется опрерация неравенства, а уже значение (результат) этой операции запишется в переменную $foo.

Чтобы этот код работал так, как боло описано в начале поста, надо использовать скобки.

if( ( $foo = returnNumberOrFalse() ) !== false){
echo $foo;
}

А вот ссылка на официальный мануал, раздел «Операторы» («Operators») http://php.net/operators

О влиянии приоритета операций в PHP: 2 комментария

  1. Фича не только полезная, но и нужная, сейчас поправлю скрипт парсилки PR, а то сейчас даже если PR=NA выводится ноль. Автору спасибо.

Добавить комментарий

Ваш e-mail не будет опубликован.