Задать вопрос
solotony
@solotony
покоряю пик Балмера

Как работает вложенный тернарный оператор в php?

<?php
$a = true;
$b = false;
$c = true;
echo $a ? 'A' : $b ? 'B' :  $c ? 'C' : 'D';


результат:

C

Почему не "A" ?
  • Вопрос задан
  • 251 просмотр
Подписаться 1 Простой 8 комментариев
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
((($a ? 'A' : $b) ? 'B' : $c) ? 'C' : 'D');
Начиная с PHP 7.4 выдаётся предупреждение о необходимости явно указывать скобки во вложенных тернарных операторах.
Начиная с PHP 8 вложенный тернарный оператор без скобок приводит к фатальной ошибке.
С точки зрения стиля, лучше вообще не использовать вложенный тернарный оператор.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
solotony
@solotony Автор вопроса
покоряю пик Балмера
ответ такой: в php этот оператор левоассоциативен.

$a ? 'A' : $b ? 'B' : $c ? 'C' : 'D';

раавносильно

(($a ? 'A' : $b) ? 'B' : $c) ? 'C' : 'D';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы