Почему в PHP при использовании функций в условии IF «теряется» первые возвращаемые значения?
Потому что гладиолус.
Вернее приоритет операций.
php.net/manual/ru/language.operators.precedence.phpif( ( $a = 4 ) && ( $b = 5 ) && ( $c = 8 ) )
Выведет ожидаемый результат.
Видимо все же где-то в коде напутал т.к. твой пример будет выдавать то, что ты присвоил