Foros del Web » Programando para Internet » PHP »

Que tipo de operacion es esta $method=($value=='on') ? '*' : '';

Estas en el tema de Que tipo de operacion es esta $method=($value=='on') ? '*' : ''; en el foro de PHP en Foros del Web. Hola buenas, realmente he visto varios script que hacen operaciones de esta forma y me puse a analizarlo y es como una especie de condicion ...
  #1 (permalink)  
Antiguo 26/05/2006, 20:53
 
Fecha de Ingreso: marzo-2006
Ubicación: Ramos Arizpe, Coah
Mensajes: 70
Antigüedad: 11 años, 9 meses
Puntos: 0
Que tipo de operacion es esta $method=($value=='on') ? '*' : '';

Hola buenas, realmente he visto varios script que hacen operaciones de esta forma y me puse a analizarlo y es como una especie de condicion en la cual, SI $value=='on' asigna '*' en caso contrario asigna '' a la variable $method. Donde puedo encontrar mas informacion de este tipo de operaciones ya que entiendo su mecanismo pero ni rayos de su nombre o porque del signo ? y los :

Por siento tambien he visto unas donde tienen :: en fin, gracias.

$method=($value=='on') ? '*' : '';
  #2 (permalink)  
Antiguo 27/05/2006, 01:21
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.547
Antigüedad: 15 años, 8 meses
Puntos: 1262
Hola:

Parece que sabes lo que se hace... el nombre se puede decir que es una asignación condicional. entre paréntesis se pone un valor lógico (verdadero/falso)... Se me ocurre un equivalente:
$metodo = array();
$metodo[false] = "";
$metodo[true] = "*";
$method = $metodo[$value == 'on'];

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 27/05/2006, 02:22
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 15 años, 1 mes
Puntos: 11
Yo no lo tengo muy claro, es una condicional? Seria lo mismo que un if con acontinuacion un else?
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #4 (permalink)  
Antiguo 27/05/2006, 11:50
 
Fecha de Ingreso: mayo-2004
Mensajes: 34
Antigüedad: 13 años, 6 meses
Puntos: 1
Se trata del operador ternario (tres argumentos) ?: y sí, es como un if else.

El operador valúa lo que esté antes del ?. Si es true devuelve el segundo argumento (entre ? y :), y si es false devuelve el último argumento (después de :).

Así, en

Código PHP:
($value=='on') ? '*' ''
se compara $value con 'on'. Si coinciden , la expresión devuelve '*' y en caso contrario ''. Como todo el operador ternario devuelve un valor, eso se lo puedes asignar a otra variable, como es el caso:

Código PHP:
$method = ($value=='on') ? '*' ''
Los paréntesis no son necesarios pero dan más claridad.

Saludos
  #5 (permalink)  
Antiguo 27/05/2006, 12:10
 
Fecha de Ingreso: marzo-2006
Ubicación: Ramos Arizpe, Coah
Mensajes: 70
Antigüedad: 11 años, 9 meses
Puntos: 0
Gracias por la aclaracion

Sabes de una pagina de mas info sobre operaciones similares, no son comúnes para mi y pues me gustaria estar algo informado de ellas, por cierto si que son utiles.
  #6 (permalink)  
Antiguo 27/05/2006, 12:24
 
Fecha de Ingreso: mayo-2004
Mensajes: 34
Antigüedad: 13 años, 6 meses
Puntos: 1
Pues nada mejor que el mismo manual de PHP. Viene un apartado especial para operadores. Ahora que, este operador ?: es posiblemente el más raro con el que te encuentres; es el único ternario siendo que todos los demás son unarios o binarios.

Otros "raritos" pero muy cómodos una vez que te acostumbras son quizá los de asignación:

Código PHP:
$a += 5
que equivale a

Código PHP:
$a $a 5
o bien

Código PHP:
$s .= 'hola'
que equivale a

Código PHP:
$s $s.'hola'
Todos ellos están muy bien explicados en el manual.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:30.