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