Maison  >  Article  >  développement back-end  >  Une brève discussion sur les différences entre isset(), empty() et is_null() en PHP

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

青灯夜游
青灯夜游avant
2021-06-25 18:39:534043parcourir

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

?>

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.

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.

?>

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.

?>

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer