Пример 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'] = "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