- Este es un caso que he hecho, aunque simple, pero el problema es engañosa:
Mira los resultados de los siguientes códigos
$dirNum=69;
$direction = $dirNum == 69 ? '东' : $dirNum == 87 ? '西' : '无';
echo $direction; //结果: 西
¿No es normal, entendida como el resultado de Oriente ?
Entonces ¿por qué los resultados del programa anterior es el Oeste, de hecho, la esencia del procedimiento anterior no está mal. Pero si se entiende el proceso de ejecución del programa va a entender.
Este código puede seguir el operador ternario se puede dividir en tres porciones
$direction = $dirNum == 69 ? '东' : $dirNum == 87 ? '西' : '无';
- expresión condicional:
$direction = $dirNum == 69
- Después de la fundación de los resultados:
? '东' : $dirNum == 87 ? '西'
- No se sostiene los resultados:
: '无'
Ahora mira a los resultados de la expresión se establece hecho, y hay dos
?
así que la pregunta es, que los resultados se hacen cumplir? Creo que sí veo que lo tienes. Este último es, sin duda ejecutados? '西'
. Yo entiendo que el programa no quiere decir que no hay ningún error lógico no es un error.
Así que hice la corrección sobre esta base, de modo que el segundo operador ternario no se establece como condición para la operación continua, a fin de evitar el problema solo.
$dirNum=69;
$direction = $dirNum == 69 ? '东' : ( $dirNum == 87 ? '西' : '无' );
echo $direction; //结果: 东