Operador ternario o "?:"
Este es uno de los operadores que más me costaba utilizar cuando aprendí a programar en C
hace años y, solo hasta hace un rato :), ignoraba que existiera en PHP
.
Es un gran descubrimiento, porque nos permite simplificar el código en muchos casos en los que hay que hacer una asignación u otra en función de una condición.
Supongamos que queremos construir una cadena que indique el número de comentarios que hay en una anotación. La forma que emplearíamos sin el operador ternario sería tal que:
$cadena="Hay " .$n_comentarios; if($n_comentarios!=1) $cadena=$cadena ." comentarios"; else $cadena=$cadena ." comentario"; echo $cadena;
De esta forma obtendríamos algo como:
Hay 0 comentarios
Hay 1 comentario
Hay 2 comentarios
Hay 3 comentarios
...
Bien, pues el operador ternario o "?:" funciona de la siguiente manera:
expresión1 ? expresión2 : expresión3
Donde el operador valdrá expresión2 si expresión1 es cierto, o valdrá expresión3 si es falso.
De esta forma el código anterior podría ser tan sencillo como:
$cadena="Hay " .$n_comentarios .($n_comentarios!=1 ? " comentarios" : " comentario"); echo $cadena;
En realidad es muy fácil de utilizar, lo único que su forma un tanto extraña hace que muchas veces no lo tengamos en cuenta cuando sería la forma más adecuada de resolver nuestro problema.
Hay 2 comentarios
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.
por r0sk, en 2005-09-23 10:42:55 ∞