Cela dépend de ce que vous cherchez, si vous cherchez juste à savoir si le site est vide, utilisez simplement empty
car il vérifie également s'il est défini, si vous voulez savoir si quelque chose est défini ou non, utilisez isset
.
Empty
vérifie si la variable est définie et si elle l'est, elle vérifie si elle est nulle, "", 0, etc.
Isset
vérifie juste s'il est défini, il peut être n'importe quoi d'autre que null.
Avec empty
les choses suivantes sont considérées comme vides :
- "" (une chaîne vide)
- 0 (0 comme un nombre entier)
- 0.0 (0 comme un flotteur)
- "0" (0 comme chaîne de caractères)
- NULL
- FAUX
- array() (un tableau vide)
- var $var ; (une variable déclarée, mais sans valeur dans une classe)
De http://php.net/manual/en/function.empty.php
Comme mentionné dans les commentaires, l'absence d'avertissement est également importante avec empty().
Manuel PHP dit
empty() est l'opposé de (boolean) var, sauf qu'aucun Un avertissement est généré lorsque la variable n'est pas définie .
En ce qui concerne isset
Manuel PHP dit
isset() retournera FALSE si elle teste une variable qui a été mise à NULL.
Votre code serait parfait en tant que :
<?php
$var = '23';
if (!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Par exemple :
$var = "";
if(empty($var)) // true because "" is considered empty
{...}
if(isset($var)) //true because var is set
{...}
if(empty($otherVar)) //true because $otherVar is null
{...}
if(isset($otherVar)) //false because $otherVar is not set
{...}
0 votes
Vide est !isset($var) || $var == false
3 votes
A mon avis, empty() est un développement horrible de PHP. Comme il considère "0" dans toutes les formes comme "vide", vous pouvez tomber dans de mauvais pièges qui vous feront perdre beaucoup de temps de débogage. Je dirais : évitez-le à tout prix et écrivez simplement la logique vous-même.