php - signos - Signo de exclamación frente a la variable-se necesita aclaración
signos de admiracion e interrogacion (4)
El !
niega true se vuelve falso, y todo lo que se evalúa como falso se convierte en verdadero.
Si está escribiendo PHP y no conoce todos los operadores de memoria ... no debería escribir una sola línea de código hasta que los sepa de memoria:
http://php.net/manual/en/language.operators.php
Estos son conceptos básicos absolutos.
He estado trabajando con PHP durante bastante tiempo, pero esto siempre fue un misterio para mí, el uso correcto del signo de exclamación (signo negativo) delante de las variables.
¿Qué indica !$var
? ¿Es var false
, vacío, no está configurado, etc.?
Aquí hay algunos ejemplos que necesito aprender ...
Ejemplo 1:
$string = ''hello'';
$hello = (!empty($string)) ? $string : '''';
if (!$hello)
{
die(''Variable hello is empty'');
}
¿Este ejemplo es válido? ¿Realmente funcionaría la sentencia if si $string
estuviera vacía?
Ejemplo 2:
$int = 5;
$count = (!empty($int)) ? $int : 0;
// Note the positive check here
if ($count)
{
die(''Variable count was not empty'');
}
¿Sería este ejemplo válido?
Nunca uso ninguno de los ejemplos anteriores, limité estos if ($var)
a variables que solo tienen valores booleanos. Solo necesito saber si estos ejemplos son válidos, así que puedo ampliar el uso de las sentencias if ($var)
. Se ven realmente limpios.
Gracias.
Es el operador not
booleano, consulte el manual de PHP para obtener más detalles.
Es un probador booleano. Vacío o falso
if(! $a)
es lo mismo que if($a == false)
. Además, se debe tener en cuenta que la conversión de tipo se lleva a cabo cuando se utiliza el operador ==
.
Para obtener más detalles, eche un vistazo a la sección "Comparaciones sueltas con ==" aquí . A partir de ahí se deduce que para las cadenas "0" y "" son FALSAS ( "0"==false
es VERDADERO y ""==false
es VERDADERO).
En cuanto a ejemplos publicados:
Ejemplo 1
Funcionará, pero debe tener en cuenta que tanto "0" como "" son cadenas "vacías".
Ejemplo 2
Funcionará