Тернарный оператор оставил ассоциативность

В руководстве по PHP я нахожуследующее «пользователь добавил примечание» в разделе «Операторы».

Обратите внимание, что в php троичный оператор?: Имеет левую ассоциативность в отличие от C и C ++, где он имеет правую ассоциативность.

Вы не можете написать такой код (как вы, возможно, привыкли в C / C ++):

<?php 
$a = 2; 
echo ( 
    $a == 1 ? 'one' : 
    $a == 2 ? 'two' : 
    $a == 3 ? 'three' : 
    $a == 4 ? 'four' : 'other'); 
echo "\n"; 
// prints 'four' 

Я на самом деле пытаюсь, и это действительно печатаетfour, Однако я не мог понять причину этого и все еще чувствую, что это должно напечататьtwo или жеother.

Может кто-нибудь объяснить, что здесь происходит и почему печатается «четыре»?

Ответы на вопрос(5)

Ваш ответ на вопрос