Foros del Web » Programando para Internet » PHP »

Dudas con empty,!isset y ++,+1

Estas en el tema de Dudas con empty,!isset y ++,+1 en el foro de PHP en Foros del Web. Tengo algunas dudas respecto a la suma en un contador: <? session_start(); session_register('contador'); ?> <HTML> <HEAD> <TITLE>contador.php</TITLE> </HEAD> <BODY> <? If (!isset($_SESSION['contador'])) { // reemplazar ...
  #1 (permalink)  
Antiguo 01/11/2009, 10:59
 
Fecha de Ingreso: agosto-2009
Ubicación: Vigo - Galiza
Mensajes: 17
Antigüedad: 14 años, 8 meses
Puntos: 0
Dudas con empty,!isset y ++,+1

Tengo algunas dudas respecto a la suma en un contador:
<?
session_start();
session_register('contador');
?>
<HTML>
<HEAD>
<TITLE>contador.php</TITLE>
</HEAD>
<BODY>
<?
If (!isset($_SESSION['contador'])) { // reemplazar !isset por empty
print ("ahora entra");
$_SESSION['contador']=0;
$contador=$_SESSION['contador'];
} else {
$contador=$_SESSION['contador']+1; // cambia +1 por ++
}
echo "<a href=\"control1.php\">Has recargado esta página $contador veces</a>";
if ($contador==5)
session_destroy();

?>
</BODY>
</HTML>
</html>

Por que en el $contador=$_SESSION['contador']+1; si reemplazo +1 por ++ este funciona. Es decir por que no funciona con el +1.


Otra duda es por que If (empty($_SESSION['contador'])) no funciona y si lo hace con isset. Entiendo que al principio al darle el session_register('contador'), contador deberia de estar vacio aunque creado, pero parece que no.
A ver si me podeis ayudar. Gracias
  #2 (permalink)  
Antiguo 01/11/2009, 11:11
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Dudas con empty,!isset y ++,+1

La funcion empty puede dar resultados inesperados si la variable vale 0, porque el 0 php lo considera como vacio. Mejor usar isset en tu ejemplo.

Y sobre lo otro. Vos acordate que no estas modificando nunca el valor de $_SESSION["contador"], por lo que, si pones $contador=$_SESSION['contador'];, siempre a contador le vas asignando 0+1 ..... pero si pones $contador=$_SESSION['contador']++ , aparte de sumar a contador, indirectamente vas a estar sumando a $_SESSION["contador"]. ..... por eso el resultado es correcto.

Espero que te haya servido lo que te postee.

Saludos.
  #3 (permalink)  
Antiguo 01/11/2009, 11:20
 
Fecha de Ingreso: agosto-2009
Ubicación: Vigo - Galiza
Mensajes: 17
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Dudas con empty,!isset y ++,+1

Claro lo de la suma es un error bastante tonto. Para que funcione el +1 tengo que poner:
$_SESSION['contador']=$_SESSION['contador']+1;
$contador=$_SESSION['contador'];
Ahora si funciona, gracias
  #4 (permalink)  
Antiguo 01/11/2009, 11:28
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Dudas con empty,!isset y ++,+1

$_SESSION['contador']=$_SESSION['contador']+1;

Mejor asi.

$_SESSION['contador'] += 1
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
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 11:57.