Autor Tema: Operadores ternarios  (Leído 2232 veces)

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Operadores ternarios
« en: 12 de Noviembre de 2009, 22:09:54 pm »
Buenas phperos! Os voy a enseñar un metodo facil para ahorrar lineas y darle un toque de profesionalidad a nuestro codigo PHP.
El codigo ternario comprime esto:
<?php
if($varible==1) {
$var2 a;
} else {
$var2 b;
}
?>

A esto:

<?php
$var2 
= (($varible==1)) ? &#39;a&#39; : &#39;b&#39;;
?>

Lo que hace realmente es devolver un valor en caso de que se cumpla o no la condicion. Os voy a enseñar otro ejemplo para que lo entendais mejor:

<?php
echo (($varible==1)) ? &#39;a&#39; : &#39;b&#39;;
?>

En este codigo si se cumple la condicion devuelve el valor a a la funcion echo y sino devuelve el valor b.
Bueno creo que lo he dejado bastante claro jeje.
Un saludo!  ;)


Este usuario ya no lo uso, mi nuevo usuario es marco811

Comunidad PHPeros

Operadores ternarios
« en: 12 de Noviembre de 2009, 22:09:54 pm »

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #1 en: 12 de Noviembre de 2009, 22:21:58 pm »
esto lo postee yo bajo el nombre de "MiniIfs"

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #2 en: 12 de Noviembre de 2009, 23:27:13 pm »
Perdon xd esq entro muy poco en phperos y no me havia fijado xd
Un saludo


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado TheGeorge

  • PHPero Avanzado
  • ****
  • Mensajes: 351
  • Karma: 13
  • Sexo: Masculino
    • Ver Perfil
    • websources
Re:Operadores ternarios
« Respuesta #3 en: 13 de Noviembre de 2009, 21:25:57 pm »
Me gusto mucho kekoman... te doy un karma +...

No sabia esto.. ahora que posteaste, lo entendi bien...

Sldos!
¡Solo sé, que nada sé...!

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #4 en: 13 de Noviembre de 2009, 21:27:28 pm »
Ya lo sabía, pero esos ''Miniif'' como les llamamos lo uso para cosas básicas, para mas complejas uso la forma normal. :P
« Última modificación: 13 de Noviembre de 2009, 21:45:57 pm por Focux »
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #5 en: 16 de Noviembre de 2009, 21:18:27 pm »
No acabo de entenderlo :S

#Fdo. Physlet

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #6 en: 16 de Noviembre de 2009, 22:07:45 pm »
Mira dejame explicarte.
(($varible==1)) esta parte es la condición, dice que $variable es igual a 1.
? Esto va siempre, no sé lo que es xd.
'a' : 'b'; Esto indica que si se cumple la condición $var2 va a ser igual a 'a' y de lo contrario será igual a 'b'
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #7 en: 17 de Noviembre de 2009, 15:40:11 pm »
Mira dejame explicarte.
(($varible==1)) esta parte es la condición, dice que $variable es igual a 1.
? Esto va siempre, no sé lo que es xd.
'a' : 'b'; Esto indica que si se cumple la condición $var2 va a ser igual a 'a' y de lo contrario será igual a 'b'

? es 'si...' el { en un if...ñ

Es decir

($variable ? 'si' : 'no')

Seria igual a
if($variable) {
echo 'si';
} else {
echo 'no';
}

un if de estos va entre parentesis, kedemonos con lo de dentro

antes del ? va la condicion. El ? indica que entre el ? y el : va lo k muestra si se cumple, tras el : va lo k va si no se cumple...

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #8 en: 30 de Noviembre de 2009, 11:54:35 am »
ya va west me confundiste xD porque tu lo pones dentro de las parentesis y kekoman fuera?

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #9 en: 30 de Noviembre de 2009, 15:23:29 pm »
ya va west me confundiste xD porque tu lo pones dentro de las parentesis y kekoman fuera?

porque de mi manera no me da errores nunca, de la que usa kekoman siempre me suele dar

Desconectado NDSi

  • PHPero Avanzado
  • ****
  • Mensajes: 410
  • Karma: 8
  • Sexo: Masculino
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #10 en: 30 de Noviembre de 2009, 15:49:42 pm »
¿Y esto sirve solo para hacer un echo?
¿Podria hacer esto o los valores entre [''] siempre se imprimiran en un echo?

($pass==$pass2 ? 'AQUI UN INSERT INTO' : 'No puedes registrarte.')

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #11 en: 30 de Noviembre de 2009, 15:57:28 pm »
nunca e probado a realizar una funcion como esa dentro de un mini-if, pero me figuro que se podrá, o que imprimirá true/false segun se realice o no la funcion

Pero no puedes usarlo solo con echos...

$var = htmlspecialchars($_GET[(isset($_GET['pepe']) ? 'pepe' : 'filiperto')]);

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #12 en: 01 de Diciembre de 2009, 19:38:57 pm »
porque de mi manera no me da errores nunca, de la que usa kekoman siempre me suele dar
Yo lo hago como kekoman y no me da error.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado albrandariz

  • PHPer@ Fijo
  • ***
  • Mensajes: 180
  • Karma: 2
  • Sexo: Masculino
    • Ver Perfil
    • Gritos De Mimo
Re:Operadores ternarios
« Respuesta #13 en: 01 de Diciembre de 2009, 19:44:10 pm »
esta genial, pero yo creo que nunca lo utilizaria por que lo que interesa es crear un codigo entendible, si yo meto eso dentro de dos años ni me acuerdo de que significa xD

buen aporte!!

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:Operadores ternarios
« Respuesta #14 en: 01 de Diciembre de 2009, 20:52:10 pm »
esta genial, pero yo creo que nunca lo utilizaria por que lo que interesa es crear un codigo entendible, si yo meto eso dentro de dos años ni me acuerdo de que significa xD

buen aporte!!

Si lo entiendes te acordaras dentro de 20, si pones un if normal y no sabes como es un if, tampoco te acordaras

Yo lo hago como kekoman y no me da error.

Pero es mas facil que lo de, segun mi opinion, yo lo uso mucho en arrays ($algo[(... ? : )]), lo mezclo mucho, y entre parentsis incluso se distingue mas