Именно почему это работает таким образом? (Приоритет нулевого объединения) приоритет) ⇐ Php

Кемеровские программисты php общаются здесь
Anonymous
Именно почему это работает таким образом? (Приоритет нулевого объединения) приоритет)

Сообщение Anonymous »

Оператор Null Coalescess имеет прецедент, который отличается от большинства других компараторов в PHP:
Пример 1:
(неверно)

Код: Выделить всё

$var['x'] = "5";
if ((int)$var['x']??0 < 1 ) {
print "less than 1"; /* outputs this */
}
else {
print "more than 1";
}
< /code>
Это приведет к "less
«Потому что сравнение, по -видимому, находится между $ var ['x'] против 0

Код: Выделить всё

$var['x'] = "5";
if ($var['x']??5 < 1 ) {
print "less than 1"; /* still outputs this */
}
else {
print "more than 1";
}
< /code>
Я понимаю ожидаемый выход; но я [b] не понимаю [/b] шаги, которые PHP предпринимает, чтобы сделать выбранное вывод. воспринимается как неожиданное поведение в примере 1 и примере 2. 
 Какие шаги обработки логической обработки приводят к тому, что это работает таким образом?$var['x'] = "5";
if ((int)($var['x']??0) < 1 ) {
print "less than 1";
}
else {
print "more than 1";
}
< /code>
Это приведет к правильному "more
"Вывод.

Подробнее здесь: https://stackoverflow.com/questions/795 ... precedence

Вернуться в «Php»