Вопрос по conditional-operator, php – PHP if / else сокращенная запись - несколько условий

-1

Пожалуйста, рассмотрите следующую конструкцию кода:

condition  ? code_if_true  : 
condition2 ? code_if_true2 : 
             code_if_false;

Это не работает для PHP, а для JavaScript.

Есть ли способ заставить это работать на PHP?

Это работает в PHP. Какова конкретная проблема у вас? Salman A
как это не работает? в чем ошибка? tomexsans
Вы должны быть немного более конкретным, чем «Это не работает». И использование этого сокращения со всем, что зависит от сложной логики, только сделает ваш код нечитаемым в любом случае. Вам гораздо лучше использовать вложенные операторы if. GordonM
Это работает в PHP, ноне так как это происходит в JS. DCoder

Ваш Ответ

1   ответ
3

оставил-associative[PHP.net]по сравнению практически со всеми другими языками, где это право-ассоциативно.

Вот почему вам нужно использовать скобки, чтобы контролировать порядок оценки1:

 condition  ? code_if_true  : 
(condition2 ? code_if_true2 : 
              code_if_false ); 

1Порядок, в котором разрешены операторы,не когда операнды оцениваются. Последнее в основномне определено[PHP.net]

Скобки сделали работу. Большое спасибо за помощь, PhantOm. Durian Nangka

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