Задать вопрос
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)
  • Вопрос задан
  • 2272 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
DevMan
@DevMan
Потому что гладиолус.
Вернее приоритет операций.
php.net/manual/ru/language.operators.precedence.php

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽