true operadores logicos is_true false boolval bool php

operadores - php string to boolean



¿Cómo funciona el verdadero/falso en PHP? (5)

Cero es falso, no cero es verdadero.

En php puedes probar más explícitamente usando el operador === .

if (0==false) echo "works"; // will echo works if (0===false) echo "works"; // will not echo anything

Me pregunto cómo maneja PHP la comparación verdadero / falso internamente. Entiendo que true se define como 1 y false se define como 0. Cuando hago if("a"){ echo "true";} echos " verdadero ". ¿Cómo reconoce PHP "a" como 1?


El mejor operador para un control estricto es

if($foo === true){}

De esta forma, realmente está comprobando si es verdadero, y no 1 o simplemente establecido.


Esto está cubierto en la documentación de PHP para booleans y tablas de comparación de tipos .

Al convertir a booleano, los siguientes valores se consideran FALSOS:

  • el booleano FALSE sí mismo
  • el entero 0 (cero)
  • el flotador 0.0 (cero)
  • la cadena vacía y la cadena ''0''
  • una matriz con cero elementos
  • un objeto con variables miembro cero (solo PHP 4)
  • el tipo especial NULL (incluidas las variables no ajustadas)
  • Objetos SimpleXML creados a partir de etiquetas vacías

Cualquier otro valor se considera VERDADERO .



pensar en el operador como función unaria: is_false(type value) que devuelve verdadero o falso, dependiendo de la implementación exacta para el tipo y valor específico. Considere si la declaración para invocar dicha función implícitamente, a través del azúcar sintáctico.

Otra posibilidad es que el tipo tenga operador de conversión, lo que convierte el tipo en otro tipo implícitamente, en este caso cadena a booleana.

PHP no expone estos detalles, pero C ++ permite la sobrecarga del operador, que expone detalles precisos de la implementación del operador.