Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/12/2013, 07:30
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Evitar que cero sea evaluado como False

El problema te viene de usar empty para ver si es cero o no

Manual

Cita:
empty() Devuelve FALSE si var existe y tiene un valor no vacío, distinto de cero. De otro modo devuelve TRUE.

Las siguientes expresiones son consideradas como vacías:

"" (una cadena vacía)
0 (0 como un integer)
0.0 (0 como un float)
"0" (0 como un string)
NULL
FALSE
array() (un array vacío)
$var; (una variable declarada, pero sin un valor)
No se esta evaluando cero como false si no que !empty($foo) es false cuando se da uno de los casos anteriores.

Usa == o ===

http://www.php.net/manual/es/languag...comparison.php


Código PHP:
Ver original
  1. $foo=0;
  2. echo (!empty($foo) || $foo==0)?"si":"no";

(!empty($foo) || $foo==0) es true si $foo existe y tiene un valor no vacío, o es cero.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 10/12/2013 a las 07:45