Aug
28
2009

Otro manera de usar el operador de comparación ternario en PHP.
Escrito por NomikOS el 28/Aug/2009 | 72 visitas

Agarra tu pecesito y ejecuta esto:

1
2
3
4
5
6
7
8
$enviar_a = array();
$ID = 'destinatario';

var_dump($enviar_a);
in_array($ID, $enviar_a) ? null : $enviar_a[] = $ID;
var_dump($enviar_a);

exit;

Funciona!

Acostumbro a usar el operador ternario “?” para asignar valores. Si no sabes que es esto revisa esto Comparison Operators y busca “Ternary Operator”.

En resúmen:

1
$val = $expresion_verdadera ? 'asignar_este_valor_si_es_verdadera' : 'asignar_este_valor_si_es_falsa';

Muchas veces me ha pasado que comienzo a escribirla cuando me doy cuenta de que no es adecuada. Ej:

1
$enviar_a[] = ! in_array($ID, $enviar_a) ? $ID : !?#

con !?# quiero decir que en ese punto me doy cuenta que aqui no habría que usar este operador. Porque que en este caso no quiero asignar nada al array, cierto?

Es decir, traduciendo el anterior código, estamos diciendo: Asignar al array $enviar_a el valor $ID sólo si es ya que no está en él; lógico.

Pero este operador espera que pongas algo en el lugar de !?#, que es el valor que le asignarías al array $enviar_a si es que ya contiene $ID.

Bueno, lo podemos hacer así:

1
! in_array($ID, $enviar_a) ? $enviar_a[] = $ID : null;

Dime que te gustó y te muestro otra construcción tan entretenida y elegantosa como esta. d^^

Escrito por NomikOS en PHP, August 28 - 2009 @ 19:34 hrs. | 72 visitas

RSS feed para comentarios en este post

TrackBack URL

Deja un comentario

XHTML: Etiquetas permitidas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

motor: WordPress. tema: TheBuckmaker modificado por NomikOS.