Operador ternário deixou a associatividade
No manual do PHP, eu achoa seguinte 'nota contribuída pelo usuário' em "Operadores".
Note que no php o operador ternário?: Possui uma associatividade à esquerda diferente de C e C ++ onde ele tem uma associatividade correta.
Você não pode escrever código como este (como você pode ter acostumado em C / C ++):
<?php
$a = 2;
echo (
$a == 1 ? 'one' :
$a == 2 ? 'two' :
$a == 3 ? 'three' :
$a == 4 ? 'four' : 'other');
echo "\n";
// prints 'four'
Eu realmente tento e realmente imprimefour
. No entanto, eu não conseguia entender a razão por trás disso e ainda sinto que deveria imprimirtwo
ouother
.
Alguém pode explicar o que está acontecendo aqui e por que está imprimindo "quatro"?