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

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

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


результат:

C

Почему не "A" ?
  • Вопрос задан
  • 327 просмотров
Подписаться 1 Простой 8 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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';
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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