Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] en un if, el 0 es igual a vacio?

Estas en el tema de en un if, el 0 es igual a vacio? en el foro de PHP en Foros del Web. Hola, tengo este problema. Estoy pasando por post el valor de un campo input oculto el cual es 0, pero en la comprobación " !empty($igv) ...
  #1 (permalink)  
Antiguo 26/08/2015, 20:57
 
Fecha de Ingreso: enero-2011
Mensajes: 112
Antigüedad: 13 años, 2 meses
Puntos: 4
en un if, el 0 es igual a vacio?

Hola, tengo este problema.
Estoy pasando por post el valor de un campo input oculto el cual es 0, pero en la comprobación " !empty($igv) " me toma que esta vacío. y me dice que no he mandado datos, pero al darle echo a la variable me devuelve 0..
y esta es mi pregunta el 0 se considera como vacio?


Código PHP:
// Recibe el Valor de los Campos por post, asignadas a una varibale
        
$tipodoc=$this->security->xss_clean(strip_tags($this->input->post('tipodoc')));
        
$serie=$this->security->xss_clean(strip_tags($this->input->post('serie')));
        
$correlativo=$this->security->xss_clean(strip_tags($this->input->post('correlativo')));
        
$fecha=$this->security->xss_clean(strip_tags($this->input->post('fecha')));
        
$moneda=$this->security->xss_clean(strip_tags($this->input->post('moneda')));
        
$idcliente=$this->security->xss_clean(strip_tags($this->input->post('idcliente')));
        
$cliente=$this->security->xss_clean(strip_tags($this->input->post('cliente')));
        
$precio_total=$this->security->xss_clean(strip_tags($this->input->post('total')));
        
$direccion=$this->security->xss_clean(strip_tags($this->input->post('direccion')));
        
$ruc=$this->security->xss_clean(strip_tags($this->input->post('ruc')));
        
$igv=$this->security->xss_clean(strip_tags($this->input->post('igv')));//AQUI


//Comprobamos que los campos necesarios para Factura esten llenos
        
if( isset($tipodoc) && !empty($tipodoc) && isset($idcliente) && !empty($idcliente) && isset($cliente) && !empty($cliente) && isset($fecha) && !empty($fecha) && isset($moneda) && !empty($moneda
            && isset(
$serie) && !empty($serie) && isset($correlativo) && !empty($correlativo) && isset($precio_total) && !empty($precio_total) && isset($igv) && !empty($igv) ):

            
//comprobamos que no se haya registrado otra factura con el mismo numero de correlativo
            
$consulta_serie $this->Facturar_model->consultar_factura($correlativo);

            
//Si no hay el correlativo en la base de datos, la registrará
            
if ($consulta_serie) :

                echo 
"<h2>Ya se ha registrado este numero de correlativo :(</h2>";

            else:

                
$this->Facturar_model->grabar_factura($codigounico$idcliente$cliente$tipodoc$fecha$moneda$serie$correlativo$precio_total$igv);
                echo 
"Listo, la factura se guardo<br>";
                
$this->Facturar_model->grabar_producto($codigounico,$array);
                echo 
"Se guardo el Producto";

            endif;

        else:
            echo 
"<h2>No Has mandado Datos<br>";
            echo 
$tipodoc;
        echo 
$serie;
        echo 
$correlativo;
        echo 
$fecha;
        echo 
$moneda;
        echo 
$idcliente;
        echo 
$cliente."<br> precio";
        echo 
$precio_total;
        echo 
$direccion."<br/>";
        echo 
$ruc."<br/>";
        echo 
$igv;// con esto compruebo qe el campo igv no este vacio, y no lo está
        
endif; 
  #2 (permalink)  
Antiguo 26/08/2015, 21:07
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: en un if, el 0 es igual a vacio?

hasta donde se no amigo el 0 es un valor y si es vacío es simplemente un null o nada

has una prueba con un if sencillo y ve los resultados, asi que no es lo mismo:

Código PHP:
Ver original
  1. <?php
  2. $a = "";
  3.  
  4. if($a == "0"){
  5.    
  6.     echo "ALFA-A";
  7. } else if($a == ""){
  8.     echo "BETA-A"; //este es el resultadoo si son ""
  9. }
  10.  
  11.  
  12. $b = 0;
  13.  
  14. if($b == ""){
  15.    
  16.     echo "ALFA-B"; //este es el resultado si es 0
  17. } else if($b == ""){
  18.     echo "Beta";
  19. }
  20.  
  21. //el empty si toma el valor 0 o las "" como vacio
  22. $a = "0";
  23. if(!empty($a)){
  24.     echo "charla<br>";
  25.     echo $a;
  26. } else{
  27.     echo "beta";
  28. }
  29. ?>
porque si colocas las "" y te llega un cero???
__________________
[email protected]
HITCEL

Última edición por xfxstudios; 26/08/2015 a las 21:13
  #3 (permalink)  
Antiguo 26/08/2015, 21:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: en un if, el 0 es igual a vacio?

Sí, el 0 a pesar de ser un valor evalúa a falsy.

Revisa esta tabla de comparación: http://php.net/manual/es/types.comparisons.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 26/08/2015, 22:15
 
Fecha de Ingreso: enero-2011
Mensajes: 112
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: en un if, el 0 es igual a vacio?

Aya..
Según la documentación:

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:

- 0 (0 como un integer)

Ya revisé, gracias.

Etiquetas: fecha, igual, variable
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 04:35.