¿Podrías ayudarme a mejorar mi estilo de codificación? :) En algunas tareas tengo que comprobar si la variable está vacía o contiene algo. Para resolver esta tarea, suelo hacer lo siguiente.
Verificar: ¿esta variable está configurada o no? Si está configurado, lo verifico, ¿está vacío o no?
<?php
$var = '23';
if (isset($var)&&!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Y tengo una pregunta: ¿debería usar isset () antes de vacío ()? ¿Es necesario? TIA!
Respuestas:
Depende de lo que esté buscando, si solo está buscando para ver si está vacío, use,
empty
ya que verifica si también está configurado, si desea saber si algo está configurado o noisset
.Empty
comprueba si la variable está configurada y si lo está, la comprueba en busca de nulos, "", 0, etc.Isset
solo verifica si está configurado, podría ser cualquier cosa que no sea nulaCon
empty
, las siguientes cosas se consideran vacías:De http://php.net/manual/en/function.empty.php
Como se mencionó en los comentarios, la falta de advertencia también es importante con vacío ()
PHP Manual dice
Respecto a isset
PHP Manual dice
Su código estaría bien como:
Por ejemplo:
fuente
empty
: No lanza una advertencia cuando la variable probada no existe. Ese es el objetivo de esta función, de lo contrario es idéntica a== false
.isset
en una variable nula (y existente) se evaluaráfalse
.En su caso particular:
if ($var)
.Debe usarlo
isset
si no sabe si la variable existe o no. Sin embargo, dado que lo declaró en la primera línea, sabe que existe, por lo tanto, no necesita, no, no debe usarisset
.Lo mismo se aplica
empty
, solo queempty
también combina una verificación de la veracidad del valor.empty
es equivalente a!isset($var) || !$var
y!empty
es equivalente aisset($var) && $var
, oisset($var) && $var == true
.Si solo desea probar una variable que debería existir para la veracidad ,
if ($var)
es perfectamente adecuado y al grano.fuente
!empty is equivalent to isset($var) && $var
, sería increíble. Gracias @decezePuede usar empty (); como se ve en la documentación , devolverá falso si la variable no tiene valor.
Un ejemplo en esa misma página:
Puede usar isset si solo quiere saber si no es NULL. De lo contrario, parece que vacío () está bien para usar solo.
fuente
$var = null; isset( $var ) == true
.Aquí están las salidas de
isset()
yempty()
para las 4 posibilidades: no declarado, nulo, falso y verdadero.Notará que todos los resultados 'isset' son opuestos a los resultados 'vacíos' excepto por el caso
$b=false
. Todos los valores (excepto el nulo que no es un valor sino un no valor) que se evalúan como falso devolverán verdadero cuando se prueben porisset
y falso cuando se prueben con 'vacío'.Así que usa
isset()
cuando esté preocupado por la existencia de una variable. Y utilíceloempty
cuando esté probando si es verdadero o falso. Si el tipo real de asuntos vacío, usois_null
y===0
,===false
,===''
.fuente
Empty devuelve verdadero si no se establece la var. Pero isset devuelve verdadero incluso si la var no está vacía.
fuente
Este es un ejemplo simple. Espero eso ayude.
editar: agregado
isset
en caso de que una variable no esté definida como arriba, causaría un error, verificar si su primer conjunto al menos ayudará a eliminar algunos dolores de cabeza en el futuro.fuente
strlen
bajo cero? Quiero ver esa cuerda.