Notación de taquigrafía PHP if / else – múltiples condiciones

Por favor considere la siguiente construcción de código:

condition ? code_if_true : condition2 ? code_if_true2 : code_if_false; 

Esto no funciona para PHP, pero sí para JavaScript.

¿Hay alguna forma de hacer que esto funcione para PHP?

En PHP, el operador condicional se deja -associative [PHP.net] , en comparación con prácticamente todos los demás idiomas donde es correcto asociativo.

Es por eso que necesita usar paréntesis para controlar el orden de evaluación 1 :

  condition ? code_if_true : (condition2 ? code_if_true2 : code_if_false ); 

1 El orden en el que se resuelven los operadores, no cuando se evalúan los operandos. El último es básicamente indefinido [PHP.net]