Foros del Web » Programando para Internet » PHP »

en una misma condición... (if)

Estas en el tema de en una misma condición... (if) en el foro de PHP en Foros del Web. Hola, muy buenas, tenía una duda, hasta ahora creo que he estado haciendo algo un poco mal, hay métodos en las condiciones que no entiendo ...
  #1 (permalink)  
Antiguo 10/11/2005, 21:43
 
Fecha de Ingreso: junio-2002
Mensajes: 602
Antigüedad: 21 años, 10 meses
Puntos: 0
en una misma condición... (if)

Hola, muy buenas, tenía una duda, hasta ahora creo que he estado haciendo algo un poco mal, hay métodos en las condiciones que no entiendo mucho.

Lo que quiero hacer es lo siguiente: que en un mismo IF, si la primera condición no es verdadera, no se moleste en ejecutar la segunda... me explico con el código:

if(isset($_SESSION['id_user']) && $_SESSION['id_user']>2) {
...
}

Si no estuvieran definidas las variables de sesión me daría error la 2da condición, entonces mi chapuza es la siguiente:

if(isset($_SESSION['id_user'])) { if($_SESSION['id_user']>2) {
...
}}

Seguro que debe haber alguna otra forma más elegante de hacerlo... saludos... :)
  #2 (permalink)  
Antiguo 11/11/2005, 03:07
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Si no estuvieran definidas las variables de sesión me daría error la 2da condición
¿lo probaste?? ... Como sea, podrías evitar ese mensaje de error anteponiendo un "@":
Código PHP:
if(isset($_SESSION['id_user']) && @$_SESSION['id_user']>2) { 
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 11/11/2005, 03:19
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Yo avivo la pregunta de jam1138:
¿Lo probaste?

Lo que pasa es que, en ese caso, no debería darte error pues al utilizar como operador el &&, si no se cuumple la primera, ya ni se molesta en verificar la segunda (basta un false para que todo sea false).

Saludos
  #4 (permalink)  
Antiguo 11/11/2005, 04:42
 
Fecha de Ingreso: junio-2002
Mensajes: 602
Antigüedad: 21 años, 10 meses
Puntos: 0
Tenéis razón, con el && no da error...

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

if(isset($_SESSION['id_user']) && $_SESSION['id_user']<2) {
print('OK');
}
?>

Pero sí me lo da en caso de que lo haga a la inversa: (con ||)

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

if(!isset($_SESSION['id_user']) || $_SESSION['id_user']>=2) {
print('OK');
}
?>

He probado el @ y funciona bien... entiendo entonces que es la única forma, no? Gracias a los 2.

PD... qué curioso, si en la primera condición pongo !isset, no me da error, pero con isset solo, sí me lo da... :-/

Última edición por BladeRunner; 11/11/2005 a las 04:47
  #5 (permalink)  
Antiguo 11/11/2005, 07:17
 
Fecha de Ingreso: mayo-2005
Mensajes: 103
Antigüedad: 18 años, 11 meses
Puntos: 1
Efectivamente si la primera no se cumple no se molesta en comprobar si se cumple la 2ª. Si te da error en la segunda condición es porque la primera se cumple simplemente.

Asi que la primera del todo en principio es correcta.

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:25.