operadores not logicos hand else php ternary-operator

not - operadores logicos php



SoluciĆ³n de problemas "T_ECHO inesperado" en la declaraciĆ³n del operador ternario (4)

($DAO->get_num_rows() == 1) ? echo("is") : echo("are");

Esta dosis no parece estar funcionando para mí como estaba previsto, aparece un error "T_ECHO inesperado". Estoy esperando que se haga eco ya sea ''es'' o ''son''.

Lo he intentado sin los corchetes alrededor del condicional. ¿Simplemente no puedo usar un operador ternario de esta manera?

El $DAO->get_num_rows() devuelve un valor entero.


El operador ternario devuelve uno de los dos valores después de evaluar las condiciones. No se supone que se use de la forma en que lo estás usando.

Esto debería funcionar:

echo ($DAO->get_num_rows() == 1 ? "is" : "are");


El operador ternario debe dar como resultado un valor, y no repetirlo.


Aquí, probablemente quieras esto:

echo ($DAO->get_num_rows() == 1) ? "is" : "are";


Si desea utilizar dos echo , tendrá que trabajar con un bloque if / else :

if ($DAO->get_num_rows() == 1) { echo "is"; } else { echo "are" }

Lo que hará lo mismo que la primera parte del código que usa el operador ternario, excepto que es un poco más largo.


El operador ternario no es idéntico a un if-then. Deberias haberlo escrito

echo ($DAO->get_num_rows() == 1) ? "is" : "are";

Devuelve el valor en la 2ª o 3ª posición. NO ejecuta la instrucción en la 2ª o 3ª posición.


U puede usar

echo ($ DAO-> get_num_rows () == 1)? "es": "son";