Une brève discussion sur les différences entre isset(), empty() et is_null() en PHP

青灯夜游
Libérer: 2023-04-10 09:28:01
avant
4069 Les gens l'ont consulté

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.

Une brève discussion sur les différences entre isset(), empty() et is_null() en PHP

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.

PHP 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 = &#39;&#39;;

if(isset($fruit)) {
    echo &#39;Do you like &#39;.$fruit.&#39;?&#39;;
}
// Output:  Do you like ?

if(!empty($fruit)) {
    echo &#39;Do you like &#39;.$fruit.&#39;?&#39;;
}
// No Output

?>
Copier après la connexion

Veuillez noter que empty() peut être écrit à l'aide de la fonction isset().

<?php

function my_empty($x) {
  return !isset($x) || $x == false
}
Copier après la connexion

Bien sûr, il est souvent plus facile d'utiliser simplement les fonctions empty() intégrées.

PHP 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 &#39;Do you like &#39;.$fruit.&#39;?&#39;;
}
// No Output

if(is_null($fruit)) {
    echo &#39;There is no fruit.&#39;;
}
// Output: There is no fruit.

?>
Copier après la connexion
Copier après la connexion

PHP 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 &#39;Do you like &#39;.$fruit.&#39;?&#39;;
}
// No Output

if(is_null($fruit)) {
    echo &#39;There is no fruit.&#39;;
}
// Output: There is no fruit.

?>
Copier après la connexion
Copier après la connexion

Choses importantes à retenir

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

2.2. N'utilisez pas

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

Apprentissage recommandé : "

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!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal