introduccion - lista de comandos php
¿Cómo funciona exactamente si($ variable)? (8)
Comprueba si $variable
evalúa como true
. Hay un par de valores normales que se evalúan como true
, vea las tablas de comparación de tipos de PHP .
if ( )
puede contener cualquier expresión que finalmente se evalúe como true
o false
.
if (true) // very direct
if (true == true) // true == true evaluates to true
if (true || true && true) // boils down to true
$foo = true;
if ($foo) // direct true
if ($foo == true) // you get the idea...
Posible duplicado:
Respecto a las afirmaciones en PHP
En los scripts de PHP, ¿qué comprueba una instrucción if como esta?
<?php if($variable){ // code to be executed } ?>
Lo he visto usado en scripts varias veces, y ahora realmente quiero saber qué es lo que "busca". No le falta nada; es solo una variable simple dentro de una sentencia if ... No pude encontrar ningún resultado sobre esto, en cualquier lugar, así que obviamente pareceré estúpido al publicar esto.
Cualquiera de estos se considera falso (por lo que //code to be executed would
no se ejecutará)
- el propio booleano FALSO
- 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 cero variables miembro (solo PHP 4)
- el tipo especial NULL (incluidas las variables no definidas)
- Objetos SimpleXML creados a partir de etiquetas vacías
Todos los demás valores deben ser verdaderos. Más información en el boolean .
Depende completamente del tipo de valor del objeto contra el que está verificando. En PHP, cada tipo de objeto tiene un cierto valor que devolverá falso si se marca contra. La explicación de estos se puede encontrar aquí: boolean Algunos valores que se evalúan como falsos son
flotar: 0.0
int: 0
booleano: falso
cuerda: ''''
matriz: [] (vacío)
objeto: objeto tiene 0 propiedades / está vacío
NULO
Es un poco diferente de la mayoría de los otros idiomas, pero una vez que te acostumbras puede ser muy útil. Es por eso que puede ver muchas declaraciones como
$result = mysqli_multi_query($query) or die(''Could not execute query'');
Una función en PHP solo necesita devolver un tipo de valor que se evalúe como falso para que algo como esto funcione. El operador OR en PHP no evaluará su segundo argumento SI el primer argumento es verdadero (ya que independientemente de la salida del segundo argumento, la declaración o aún pasará) y líneas como esta intentarán llamar a una consulta y asignarán el resultado a $ resultado . Si la consulta falla y la función devuelve un valor falso, el hilo se cancela y se imprime "No se pudo ejecutar la consulta".
Intenta mirar esta vieja " tabla de verdad de php " para que te des cuenta de los diferentes baches que esperan para reventar tus llantas. Al comenzar, sea lo más explícito posible con cualquier operador de comparación que bifurque su código. Pruebe y pruebe que las cosas sean idénticas y no iguales.
La construcción if ($variable)
prueba para ver si $variable
evalúa a cualquier valor "verdadero". Puede ser un valor booleano TRUE
, un valor no vacío, un valor no NULL o un número distinto de cero. Eche un vistazo a la lista de evaluaciones booleanas en los documentos de PHP.
De la documentación de PHP:
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
Sin embargo, tenga en cuenta que if ($variable)
no es apropiado para usar cuando se prueba si una variable o clave de matriz se ha inicializado. Si la variable o la clave de la matriz aún no existe, esto resultaría en una E_NOTICE Undefined variable $variable
.
La siguiente lista explica qué se considera evaluar como false
en PHP:
- el propio booleano FALSO
- 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 cero variables miembro (solo PHP 4)
- el tipo especial NULL (incluidas las variables no definidas)
- Objetos SimpleXML creados a partir de etiquetas vacías
Cada otro valor se considera VERDADERO (incluido cualquier recurso).
fuente: http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting
En su pregunta, una variable se evalúa dentro de la sentencia if()
. Si la variable no está establecida, se evaluará como falso según la lista anterior. Si está establecido, o tiene un valor, se evaluará como verdadero, por lo tanto, ejecutará el código dentro de la rama if()
.
Si convierte $variable
a un booleano, y actúa de acuerdo con el resultado de esa conversión.
Ver los documentos boolean para más información.
Para convertir explícitamente un valor a booleano, use las conversiones (bool) o (booleano). Sin embargo, en la mayoría de los casos, la conversión no es necesaria, ya que un valor se convertirá automáticamente si un operador , función o estructura de control requiere un argumento booleano.
si una función se ejecuta con éxito (verdadero) o existe una variable (verdadera) boolean
la instrucción if continuará. De lo contrario será ignorado.