El operador ternario en PHP permite escribir simples declaraciones " if-else " con una línea de código en lugar de de dos a cinco líneas de código que podrían ser necesarias para una sentencia " if-else " . Le puede ayudar a acortar el tiempo de codificación y puede hacer un programa más fácil de entender y más fácil de mantener . El operador ternario evaluará una expresión condicional y devolver el resultado de una sentencia si es verdad y otra declaración si es falso . Sustituye a esta declaración: if ($ x < 0 ) { $ result = "negativo ";} else { $ result = " no es negativo ";} con esta declaración : $ result = $ x < 0 ? "negativo ": " no negativo " ; Cuando se utiliza el operador ternario , siga la sintaxis documentada de manifestaciones y tenga cuidado al crear expresiones más complejas que involucran declaraciones y variables pasadas por referencia anidados . Sintaxis
Construir una declaración con el operador condicional ternario mediante una expresión condicional , seguida de un signo de interrogación y una declaración de evaluar si la expresión condicional es verdadero, seguido de dos puntos y una declaración de evaluar si la expresión condicional es falso. Por ejemplo , la siguiente instrucción asigna verdadero o falso a la variable " is_teenager ", basada en la edad de la persona:
$ is_teenager = ( $ edad > = 13 && $ edad < = 19 ) ? true: false ;
Omitiendo el Medio
PHP versión 5.3 o posterior, puede crear una expresión aún más abreviada utilizando el operador ternario omitiendo el medio de la declaración y el uso de la primera expresión como tanto la expresión condicional y el valor a ser devuelto si la expresión condicional es verdadero . Cree una instrucción condicional , seguida de un signo de interrogación y dos puntos , seguido por la declaración de evaluar si la expresión condicional es falso. Si la expresión condicional es verdadero , el resultado es verdadero . Por ejemplo , la siguiente expresión devuelve true si la edad de una persona es menor de 21 y false en caso contrario
$ Edad < 21 : . ? False;
declaraciones anidación < br >
no crear expresiones complejas utilizando sentencias condicionales anidadas y operadores ternarios . Al hacer esto , por lo general hace el código más difícil de entender, difícil de depurar y más difícil de mantener. Si le cuentas nido , utilice paréntesis para que quede claro cómo se obtiene el resultado final o considere el uso de una estructura alternativa , como una declaración " if-else " .
Resultado es una declaración
Si utiliza variables pasadas por referencia con un operador ternario , recuerda que las expresiones proporcionadas con el operador son declaraciones , no variables . No se puede utilizar una variable pasada por referencia a sí misma como una declaración , ya que no tiene ningún valor . En PHP 5.3 y posteriores , recibirá una advertencia si se construye una declaración con una sola variable pasada por referencia.