Operator trójskładnikowy opuścił asocjatywność

W podręczniku PHP znajdujęnastępujący „wpis wniesiony przez użytkownika” w „Operatorzy”.

Zauważ, że w php operator trójskładnikowy?: Ma powiązanie lewe w przeciwieństwie do C i C ++, gdzie ma odpowiednią asocjatywność.

Nie możesz pisać kodu w ten sposób (jak mógłbyś się przyzwyczaić w C / C ++):

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

Właściwie to próbuję i to naprawdę drukujefour. Jednak nie mogłem zrozumieć przyczyny tego problemu i nadal czuję, że powinien on zostać wydrukowanytwo lubother.

Czy ktoś może wyjaśnić, co tu się dzieje i dlaczego drukuje „cztery”?

questionAnswers(5)

yourAnswerToTheQuestion