Задать вопрос
slavik
@slavik

Почему в PHP при использовании функций в условии IF «теряется» первые возвращаемые значения?

Наткнулся на какой-то подводный камень php, гугление сходу не помогло, подскажите, что не так?
if($a = 4 && $b = 5 && $c = 8) {
print($a); // 1 почему?
print($b); // 1
print($c); // 8
}

p.s. Условие упрощено, но там используются запросы $a = db_query(1) && $b = db_query(2)
  • Вопрос задан
  • 2271 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
DevMan
@DevMan
Потому что гладиолус.
Вернее приоритет операций.
php.net/manual/ru/language.operators.precedence.php

if( ( $a = 4 ) && ( $b = 5 ) && ( $c = 8 ) )
Выведет ожидаемый результат.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Видимо все же где-то в коде напутал т.к. твой пример будет выдавать то, что ты присвоил
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы