Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

221
Visualizações
Por qué vacío ('0') = verdadero; vacío('00') = falso;

Evalúo $var usando

 if(empty($_GET['var'])){ ... }

Tomo VERDADERO de

 https://myweb.com/?var=0

tomo FALSO de

 https://myweb.com/?var=00
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

La pseudofunción empty comparte su lógica con la conversión a booleano : si algo es equivalente a "falso", se considera "vacío".

La lista de valores que se consideran "vacíos" pretende ser útil, pero en ocasiones es confusa, porque en realidad no hay una respuesta perfecta. Comenzando con números enteros, parece razonable que 0 esté "vacío", pero, por ejemplo, 1 no lo está. Debido a que la entrada del usuario casi siempre viene en forma de cadenas (particularmente en la web, donde PHP se siente más cómodo), también es útil que la cadena "0" se comporte igual que el número entero 0 .

A primera vista, "00" también debería ser equivalente a 0 y, por lo tanto, "vacío", pero ahora las cosas comienzan a complicarse: si convierte la cadena "hello" en un número entero, también es 0 , también lo es "hello" también vacío? Eso no sería muy útil.

La verdad es que los moldes como este solo pueden funcionar de dos maneras:

  • Lanzar un error en cualquier conversión que no sea 100% inequívoca.
  • Elija un conjunto de compromisos que sean útiles en su mayoría, pero no del todo consistentes.

PHP eligió la segunda ruta, y la diferencia entre empty("0") y empty("00") es uno de los efectos secundarios del compromiso particular elegido. Otros lenguajes que tomaron una ruta similar (por ejemplo, Perl, JavaScript) tienen compromisos diferentes, con diferentes resultados sorprendentes.

Vea también mi respuesta a una pregunta similar aquí .

over 4 years ago · Santiago Trujillo Relatório

0

Porque 0 da vacío en PHP si marca sin tipo, pero creo que 00 escribe a un valor de cadena y, por lo tanto, no está vacío.

Puede verificar estrictamente con el tipo a través del operador ===

over 4 years ago · Santiago Trujillo Relatório

0

Creo que probablemente se deba a que está recibiendo el 00 como valor de cadena en su código. Porque 0 y 00 se consideran vacíos por la función de empty en PHP . Intente ejecutar el código a continuación en uno de sus PHP para comprenderlo mejor. Incluso puede consultar el enlace de sandbox .

 <?php $a = 0; $b = 00; $c = '00'; if(empty($a)) echo 'empty a'; if(empty($b)) echo 'empty b'; if(empty($c)) echo 'empty c'; ?>

Consulte la documentación de la función empty() , hay una lista de valores que se consideran vacíos.

La función empty() comprueba si una variable está vacía o no. Esta función devuelve falso si la variable existe y no está vacía, de lo contrario devuelve verdadero. Los siguientes valores se evalúan como vacíos:

0
0.0
"0"
""
NULO
FALSO
formación()

Además, cuando se trata de verificación numérica, siempre debe encasillar el valor en un número entero y luego comparar si es 0 o no. Este sería el enfoque ideal.

 <?php $a = 0; $b = '0'; $c = '00'; $d = 1; $e = '1'; if(!intval($a)) echo 'empty a '; if(!intval($b)) echo 'empty b '; if(!intval($c)) echo 'empty c '; if(!intval($d)) echo 'empty d '; if(!intval($e)) echo 'empty e '; ?>
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda