Maison > Article > développement back-end > Une brève discussion sur les différences entre isset(), empty() et is_null() en PHP
En PHP, isset(), empty() et is_null() peuvent tous être utilisés pour tester la valeur d'une variable, alors quelles sont les différences entre eux ? L'article suivant comparera ces trois fonctions et comprendra leurs différences.
Commençons par quelques définitions.
isset()
: Vous pouvez utiliser isset()
pour déterminer si une variable est déclarée et est différente de null
.
empty()
: Il est utilisé pour déterminer si une variable existe et que la valeur de la variable n'a pas été évaluée à false
.
is_null()
: Cette fonction permet de vérifier si une variable est null
.
isset()
vs empty()
Comme nous pouvons le voir d'après la définition, si nous avons défini la variable avant et que sa valeur est défini sur une valeur autre que NULL
, alors isset()
renverra true
. Cela peut inclure 0
, une chaîne vide ou false
. En revanche, false
renvoie empty()
chaque fois que la valeur d'une variable est définie sur true
, et nous appelons ces valeurs "fausses valeurs". Des exemples de valeurs d'erreur incluent : 0
, chaîne vide ""
et chaîne "0"
, tableau vide NULL
et bien sûr booléen false
. Une similitude entre
isset()
et empty()
est qu'ils sont tous deux des constructions de langage et ne peuvent donc pas être appelés à l'aide de fonctions variables.
L'extrait de code ci-dessous devrait expliquer la différence entre les deux.
<?php $fruit = ''; if(isset($fruit)) { echo 'Do you like '.$fruit.'?'; } // Output: Do you like ? if(!empty($fruit)) { echo 'Do you like '.$fruit.'?'; } // No Output ?>
Veuillez noter que empty()
peut être écrit à l'aide de la fonction isset()
.
<?php function my_empty($x) { return !isset($x) || $x == false }
Bien sûr, il est souvent plus facile d'utiliser simplement les fonctions empty()
intégrées.
isset()
vs is_null()
Si la valeur d'une variable est explicitement définie sur NULL
, la fonction is_null()
renvoie true
. Sinon, il revient simplement false
. En revanche, chaque fois qu'une variable est définie et que sa valeur n'est pas NULL
, isset()
renverra true
.
Voici un exemple basique pour illustrer la différence entre eux.
<?php $fruit = NULL; if(isset($fruit)) { echo 'Do you like '.$fruit.'?'; } // No Output if(is_null($fruit)) { echo 'There is no fruit.'; } // Output: There is no fruit. ?>
empty()
vs is_null()
Si la valeur d'une variable est évaluée comme false
, la fonction empty()
renverra true
. Cela peut signifier une chaîne vide, NULL
, un entier 0
ou un tableau sans élément. En revanche, NULL
renverra is_null()
uniquement si la valeur de la variable est true
.
Voici un exemple basique pour illustrer la différence entre eux.
<?php $fruit = NULL; if(isset($fruit)) { echo 'Do you like '.$fruit.'?'; } // No Output if(is_null($fruit)) { echo 'There is no fruit.'; } // Output: There is no fruit. ?>
Il existe deux conseils que vous pouvez utiliser pour écrire un code plus propre et éviter les erreurs à l'avenir.
1. Contrairement à empty()
et is_null()
, vous pouvez transmettre plusieurs valeurs à isset()
à la fois pour vérifier si l'une d'entre elles n'est pas définie ou est définie sur NULL
en même temps. Dans ce cas, isset()
ne sera renvoyé que si aucune des valeurs transmises n'est NULL
. true
pour vérifier si une valeur est ==
. Cela donnera des faux positifs aux valeurs comme la chaîne vide qui est évaluée à NULL
. false
Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!