El operador ternario dejó asociatividad
En el manual de PHP, encuentrola siguiente 'nota contribuida por el usuario' bajo "Operadores".
Tenga en cuenta que en php el operador ternario?: Tiene una asociatividad de izquierda, a diferencia de C y C ++, donde tiene una asociatividad de derecha.
No puede escribir código como este (como puede haberse acostumbrado en C / C ++):
<?php
$a = 2;
echo (
$a == 1 ? 'one' :
$a == 2 ? 'two' :
$a == 3 ? 'three' :
$a == 4 ? 'four' : 'other');
echo "\n";
// prints 'four'
En realidad lo intento y realmente se imprime.four
. Sin embargo, no pude entender la razón detrás de esto y todavía siento que debería imprimirtwo
oother
.
¿Alguien puede explicar qué está sucediendo aquí y por qué está imprimiendo 'cuatro'?