2009-04-20 10 views
5

Cuando escribo una sentencia if, tengo que comprobar una variable de este modo:Comprobación Si Entonces declaraciones en PHP

if(isset($_GET['username']){ 
echo "set"; 
} else { 
echo "unset"; 
} 

cómo podría conseguir mi sentencia if para comprobar si dos variables se establecen similar a esto:

if(isset($_GET['username'] & $_GET['firstname'])){ 
echo "set"; 
} else { 
echo "unset"; 
} 

Así que, básicamente, ¿cómo puedo verificar dos cosas en una instrucción if a la vez?

+2

¿Por qué los votos a favor? Aunque esta es una pregunta bastante básica, pero la gente necesita aprender esto en alguna parte, y este es un lugar tan bueno como cualquier otro. Claro, podría no ser malo obtener un libro introductorio de programación, pero sé amable con los noobs. –

Respuesta

0
if (isset($_GET['username']) AND isset($_GET['firstname'])) 
{ 
    echo "set"; 
} 
else 
{ 
    echo "unset"; 
} 
11

Salida del Manual de PHP en control structures y logical operators:

if(isset($_GET['username']) && isset($_GET['firstname'])) { 
    echo "set"; 
} else { 
    echo "unset"; 
} 

Utilizando la única & está haciendo un bitwise operation, que sin duda no es lo que quiere.

and es también un sinónimo de la sintaxis &&, como han mostrado las demás respuestas.

EDIT: Como se señala en los comentarios, puede verificar si se emiten dos variables pasándolas a la función isset. Sin embargo, si alguna vez quisiste hacer algún otro tipo de operación necesitarías hacer los operadores lógicos arriba.

+0

Eche un vistazo a la respuesta de Nick Presta. – nickf

+0

Estaba respondiendo la pregunta general de "Entonces, básicamente, ¿cómo verifico dos cosas en una declaración if a la vez?" pero creo que voy a editar mi respuesta para incluir eso ... –

0
if (isset($_GET['username']) && isset($_GET['firstname'])) 
{ 
    echo "set"; 
} 
else 
{ 
    echo "unset"; 
} 

para la referencia: PHP's operators

+0

uh, ¿es eso correcto? No lo creo. si lo es, ¿es algún feo php-hack nuevo ... "($ _GET [] && $ _GET [])" evalúa a un valor booleano. las variables se pueden establecer o no, los valores solo ... son. – stefs

+0

Falta un apóstrofo después de 'nombre de usuario'. Además, ese código no es válido en absoluto. –

+0

Se ha solucionado el problema del código original. Copié el código de pregunta cambiando su uso & (el operador incorrecto) para && sin verificar el resto. – Rob

1

Trate de usar el operador & & (lógico y) en lugar de & (binario y)

así que si isset devuelve cierto tanto para entonces el si los rendimientos verdaderos de lo contrario el si devolverá falso.

2
if (isset($_GET['username']) && isset($_GET['firstname'])) 
1

sí, o

eco ((isset ($ _ GET [ 'username']) & & isset ($ _ GET [ 'apellido'])) "set": "desactivada");

+0

Me gusta que me guste algo así. –

7
if (isset($_GET['username'], $_GET['firstname'])) { 
    echo 'Set!'; 
} 

isset toma varios argumentos y si se suministran múltiples parámetros entonces isset() devolverá TRUE sólo si todos los parámetros se ajustan. La evaluación va de izquierda a derecha y se detiene tan pronto como se encuentra una variable no definida.

+0

Sí, estaba a punto de decir esto yo mismo. No puedo creer todas las otras respuestas que no se dieron cuenta de esto ... – nickf

Cuestiones relacionadas