Именно почему это работает таким образом? (Приоритет нулевого объединения) приоритет)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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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