Pourriez-vous m'aider à améliorer mon style de codage? :) Dans certaines tâches, je dois vérifier - la variable est-elle vide ou contient quelque chose. Pour résoudre cette tâche, je fais généralement ce qui suit.
Vérifier - cette variable est-elle définie ou non? S'il est défini - je vérifie - il est vide ou pas
<?php
$var = '23';
if (isset($var)&&!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Et j'ai une question - devrais-je utiliser isset () avant empty () - est-ce nécessaire? TIA!
Réponses:
Cela dépend de ce que vous recherchez, si vous cherchez simplement à voir s'il est vide, utilisez simplement
empty
car il vérifie s'il est également défini, si vous voulez savoir si quelque chose est défini ou nonisset
.Empty
vérifie si la variable est définie et si c'est le cas, vérifie qu'elle est nulle, "", 0, etc.Isset
vérifie simplement s'il est défini, il pourrait s'agir de quelque chose qui n'est pas nulAvec
empty
, les éléments suivants sont considérés comme vides:Depuis 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
Concernant isset
Manuel PHP dit
Votre code serait bien comme:
Par exemple:
la source
empty
: Il ne lance pas d'avertissement lorsque la variable testée n'existe pas. C'est tout l'intérêt de cette fonction, sinon c'est identique à== false
.isset
sur une variable nulle (et existante) sera évalué àfalse
.Dans votre cas particulier:
if ($var)
.Vous devez utiliser
isset
si vous ne savez pas si la variable existe ou non. Puisque vous l'avez déclaré sur la toute première ligne, vous savez qu'il existe, donc vous n'avez pas besoin de, non, ne devriez pas l' utiliserisset
.Il en va de même
empty
, mais celaempty
combine également un contrôle de la véracité de la valeur.empty
équivaut à!isset($var) || !$var
et!empty
équivaut àisset($var) && $var
ouisset($var) && $var == true
.Si vous voulez seulement tester une variable qui devrait exister pour la véracité , elle
if ($var)
est parfaitement adéquate et pertinente .la source
!empty is equivalent to isset($var) && $var
-ci, ce serait génial. Merci @decezeVous pouvez simplement utiliser empty () - comme vu dans la documentation , il retournera false si la variable n'a pas de valeur.
Un exemple sur cette même page:
Vous pouvez utiliser isset si vous voulez simplement savoir s'il n'est pas NULL. Sinon, il semble que vide () est très bien à utiliser seul.
la source
$var = null; isset( $var ) == true
.Voici les sorties de
isset()
etempty()
pour les 4 possibilités: non déclaré, nul, faux et vrai.Vous remarquerez que tous les résultats «isset» sont opposés aux résultats «vides» sauf pour le cas
$b=false
. Toutes les valeurs (à l'exception de null qui n'est pas une valeur mais une non-valeur) qui évaluent à false renverront true lorsqu'elles sont testées parisset
et false lorsqu'elles sont testées par «vide».Utilisez donc
isset()
lorsque vous êtes préoccupé par l'existence d'une variable. Et utilisezempty
lorsque vous testez pour vrai ou faux. Si le type réel des questions de vide, l' utilisationis_null
et===0
,===false
,===''
.la source
Empty renvoie true si la variable n'est pas définie. Mais isset renvoie true même si la variable n'est pas vide.
la source
Ceci est un exemple simple. J'espère que ça aide.
edit: ajouté
isset
dans le cas où une variable n'est pas définie comme ci-dessus, cela provoquerait une erreur, vérifier si son premier ensemble au moins aidera à éliminer quelques maux de tête sur la route.la source
strlen
sous zéro? Je veux voir cette chaîne.