Así, Jacob Relkin tiene toda la razón en que la "forma abreviada" que mencionas es, en efecto llamado el "ternaria" operador, y como Sam Dufel agrega, es muy frecuente en otros idiomas. Dependiendo de cómo lo implemente el lenguaje, incluso puede ser más rápido para el servidor interpretar la lógica, así como permitirte leerla más rápidamente.
Por lo tanto, a veces lo que ayuda cuando se está aprendiendo una nueva lógica o los nuevos operadores como este es pensar en el inglés (o cualquiera que sea su idioma nativo) para adaptarse a él. Descríbalo en una oracion Vamos a hablar a través de su ejemplo:
($var) ? true : false;
Lo que esto debe leerse como es esto:
es de $ var cierto? Si $ var es, devuelva el valor true. Si $ var es falso, devuelve el valor falso.
El signo de interrogación ayuda a recordarle que está haciendo una pregunta que determina la salida.
Un caso de uso más común para el operador ternario es cuando está comprobando algo que no es necesariamente un booleano, pero puede usar la lógica booleana para describirlo. Tomemos por ejemplo el objeto Car
, que tiene una propiedad llamada color
, que es una variable tipo cadena (en PHP). No se puede pedir si una cadena es verdadera o falsa, porque eso no tiene sentido, pero se puede pedir a diferentes preguntas al respecto:
$output = $car->color == "blue" ? "Wheee this car is blue!" : "This car isn't blue at all.";
echo $output;
Así que esta línea se lee como sigue:
es el color de coche lo mismo que la cadena "azul"?
Si lo es, devuelva la cadena "¡Si este auto es azul!", de lo contrario devolver la cadena "Este auto no es azul en absoluto".
Lo que sea que el operador ternario regrese se está utilizando en el lado derecho de una declaración de asignación con $ output, y esa cadena se imprime.
¿Qué quiere decir con "taquigrafía"? –
Esto no es Perl, no hay mucha "taquigrafía" en PHP. ¿Formas más cortas y más concisas de hacer ciertas cosas? Posiblemente. ¿Taquigrafía? No tanto. En general, su código se acortará al aprender qué hacen las diferentes funciones y encontrar una buena que haga lo que quiera, o combinar algunas de ellas para lograr el efecto deseado. – deceze
Ahora en PHP 5.4: 'print $ var?: 'Foo'' si simplemente desea verificar si el valor es verdadero o usar una cadena predeterminada de" foo ". – Xeoncross