¿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,
emptyya que verifica si también está configurado, si desea saber si algo está configurado o noisset.Emptycomprueba si la variable está configurada y si lo está, la comprueba en busca de nulos, "", 0, etc.Issetsolo 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.isseten una variable nula (y existente) se evaluaráfalse.En su caso particular:
if ($var).Debe usarlo
issetsi 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 queemptytambién combina una verificación de la veracidad del valor.emptyes equivalente a!isset($var) || !$vary!emptyes 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 porissety falso cuando se prueben con 'vacío'.Así que usa
isset()cuando esté preocupado por la existencia de una variable. Y utilíceloemptycuando esté probando si es verdadero o falso. Si el tipo real de asuntos vacío, usois_nully===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
isseten 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
strlenbajo cero? Quiero ver esa cuerda.