IF ELSE en php

EnZo

en javascript:

if (1==2) alert(1);
else alert(2);

es lo mismo que poner:

(1==2) ? alert(1) : alert(2);

esta ultima linea sabeis si existe en php? o algo similar?
Asi tal y como esta no va en php.

Editado por moderador: Movido a Desarrollo & Diseño web.

Whose

la funcion alert() no existe en PHP, o al menos en el manual online de su web oficial.

Si necesitas informarte sobre los if:
http://es2.php.net/if

Saludos ;)

_BoJa_69

Como te ha dicho whose en PHP no existe la función alert.

Si a lo que te referías es a la estructura (expresión logica) ? sitruehaceesto : sifalsehaceesto; en php si existe.

EnZo

Boja me entendio xD

como el dice busco esa estructura logica para sustituir el if else por eso que he escrito. Pero asi como dices no va boja, ya lo he probado.

EnZo

vale, ya lo tengo, las diferencias son que se debe de usar un = mas a la hora de comparar, y que la instruccion final de lo que quieres hacer debe de estar al principio

JS:
(1==2) ? document.write(1) : document.write(2);

PHP:
echo (1===2) ? 1 : 2;

son equivalentes, thanks por todo.

SeiYa

mira, en php tienes algo parecido... para funciones booleanas: return(1==2); devolvera true o false en funcion de la condicion, return(x==2); por enjemplo..

EnZo

y en caso de false como hago un echo?

LiuM

Si tienes dudas de estructuras de php bajate los apuntes de programacion de mi universidad, el tema de if/else while y do/while es todo igual a php practicamente.

www.inforg.uniovi.es

EnZo

Que va, ya esta todo solucionado.

Yo usaba aveces eso en JS y supuse que tenia que haber algo parecido en PHP para ahorrar codigo.

Porque prefiero usar esto:
echo (1===2) ? 1 : 2;

a esto:
if (1==2) echo 1;
else echo 2;

guner

lo ke has puesto en #6 no funciona, porque echo no es propiamente una funcion, es solo un metodo de salida, y no tiene valor de retorno, x lo ke se interpreta como "no true".

<?php

false ? $a=1 : $a=2;
echo $a; // $a = 2

/* ekivale a:
&nbsp; &nbsp; if (false) $a = 1;
&nbsp; &nbsp; else $a = 2;
&nbsp; &nbsp; echo $a;
*/
?>

<?php

true ? $a=1 : $a=2;
echo $a; // $a = 1

/* ekivale a:
&nbsp; &nbsp; if (true) $a = 1;
&nbsp; &nbsp; else $a = 2;
&nbsp; &nbsp; echo $a;
*/
?>

para futuras comeduras de cabeza : >

EnZo

estas equivocado, asi pensaba yo. Como dices va en JS
primero haces la comparacion y en funcion del boleano haces la instruccion que quieras. Pues en PHP la instrucion que quieras hacer va antes.

<?
echo (1===2) ? 1 : 2;
?>

pruebalo y dime si va a no.

segun tu esto va:
<?
(1===2) ? echo 1 : echo 2;
?>

pero no es asi en PHP esa instruccion no funciona.

guner

y dime ke kiere ke ver eso con lo ke yo dije antes : >

falla porke:

Error de Parseado: PHPDocument1 línea 3 - syntax error, unexpected T_ECHO

PD: uso PHP5, no se si el error tambien se da en la version ke estes usando tu. (aunke va a ser ke si)

:::

<?php

(1===2) ? $a=1: $a=2;
echo $a; // $a = 2

?>

<?php

(1!==2) ? $a=1: $a=2;
echo $a; // $a = 1

?>

espero ke esta vez me hayas entendido

editado x enésima vez:

<?php

(1===2) ? print 1: print 2; // output: 2

?>

<?php

(1!==2) ? print 1: print 2; // output: 1

?>

EnZo

lo ke has puesto en #6 no funciona
Primero decirte que si va.

Luego, lo que tu haces es dar valor a una variable, ok yo e puesto un mal ejemplo y en vez de dar valor a la variable he imprimido directamente un numero. Mi error ha sido decirte que no iva cuando si va. Lo que no va es al hacer un echo.

Pero ahora mi pregunta es, porque usar esto:
(false) ? $a=1 : $a=2;
echo $a; // $a = 2

pudiendo usar:
echo (false) ? 1 : 2;

y en el caso de que no quieras imprimir nada si lo que vas a usar es la misma variable porque no usar?
$a = (false) ? 1 : 2;

guner

http://www.php.net/manual/es/language.expressions.php

si lo ke intentabas es esto ...

PD: editado antes de ver #16

<?php

echo (2 == 1 ? 1 : 2); // output: 2
echo (2 != 1 ? 1 : 2); // output: 1

?>

ahora te gusta?

y si kieres puedo abreviar más:

<?=((2==1)?1:2);?>
<?=((2!=1)?1:2);?>

EnZo

#13 te digo lo mismo xD

escribes de mas, cuando puedes abreviar.

EnZo

#15 vale, y?

entonces que me querias decir en #11 ?
que solucion me estabas dando?

guner

puse algo en #15 yo ?

EnZo

para que te contestara asi te refieres?

pues despues de editar #15 asi como 3 veces dices esto:

ahora te gusta?

y si kieres puedo abreviar más:

<?=((2==1)?1:2);?>
<?=((2!=1)?1:2);?>

pues conteste con #17

guner

se me fue la olla no ? : >

EnZo

pues si eso lo hubieses dixo en #15 o #18 pos hubiesemos acabao este mal entendido antes no? xD

guner

yup < :

B

el if else existe en php. se utiliza así:

if ($a==1) {
// código si $a vale 1
} else {
// código si $a no vale 1
}

lo del alert no existe en php pq php se ejecuta en el servidor, no en el cliente. lo que hace las ventanitas 'alert' es el javascript. lo que sí que puedes hacer en php, es hacer un echo de un código javascript u otro según te convenga.

EnZo

gracias por la aclaracion, ahora ya lo entiendo todo xD

Usuarios habituales