Maison > Article > développement back-end > Comment vérifier les valeurs nulles en utilisant PHP (4 méthodes)
Dans l'article précédent "Apprentissage PHP Array : Comment supprimer des éléments vides ou en double", nous avons appris que nous pouvons utiliser la fonction empty() pour déterminer si une valeur est vide. Alors, quels sont les moyens de vérifier les valeurs nulles en PHP ? Cette fois, nous découvrirons plusieurs méthodes courantes. Si vous en avez besoin, vous pouvez en apprendre davantage ~
Le thème de l'article d'aujourd'hui est : utiliser PHP pour détecter si une valeur est vide ou non. Bon, allons droit au but. Voici quelques méthodes courantes.
Méthode 1 : Utiliser la fonction vide()
fonction vide : détecter si la variable est "vide"
Toute variable non initialisée, une variable avec une valeur de 0 ou faux ou une chaîne vide "" ou null, ou un tableau vide, les objets sans aucun attribut seront jugés comme VRAI.
Jetons un coup d'œil à l'exemple de code ci-dessous :
<?php $a = 'test'; $b = array('key1' => 'value1'); $class = new stdClass(); var_dump(empty($c)); // 输出 bool(true) var_dump(empty($b['key2'])); // 输出 bool(true) var_dump(empty($class)); // 输出 bool(false) var_dump(empty($class->test->test)); // 输出 bool(true) class EmptyClass{}; $empty_class = new EmptyClass(); var_dump(empty($empty_class));// 输出 bool(false) ?>
Résultat de sortie :
Les variables suivantes seront considérées comme vides par vide :
"" (chaîne vide)
0 ( 0 comme entier)
0.0 (0 comme flottant)
"0" (0 comme chaîne)
NULL
FALSE
array() (Un tableau vide)
$var; (une variable déclarée mais sans valeur)
Découvrez
0
,'0'
, '',null
etfalse
.0
、'0'
、''
、null
、false
这五种类型的区别。
null为不存在之意:php底层的zval空间里没有存其value值,只存储了一个type标志其 IS_NULL。
而0 、'0' 、'' 、 false这四个为存在,php底层是开辟zval空间存储,有value,有type。
string '0'与 string '' 不相等
int 0 却和 string '' 空相等,(非同类形比较,php会做类型转换)
string '0' 与 null 不相等,int 0 与 null 相等
方法2:使用isset()
isset功能:判断变量是否被初始化,可用来测试变量是否已经配置。若变量已存在则返回 true 值;其它情形返回 false 值。
下面通过代码示例来具体看看:
<?php $a = 'test'; $b = array('key1' => 'value1'); $class = new stdClass(); var_dump(isset($class->test->test)); // 判断对象属性是否定义:输出 bool(false) var_dump(isset($a)); // 判断变量是否定义:输出 bool(true) var_dump(isset($c)); // 判断变量是否定义:输出 bool(false) var_dump(isset($b['key1'])); // 判断数组元素是否定义:输出 bool(true) var_dump(isset($b['key2'])); // 判断数组元素是否定义:输出 bool(false) ?>
输出结果:
方法3:使用is_null()
is_null功能:检测变量是否为"null"。
当变量被赋值为"null"时,检测结果为true;0、空字符串、false、空数组都检测为false。
下面通过代码示例来具体看看:
<?php $a = null; $b = false; var_dump(is_null($a)); var_dump(is_null($b)); var_dump(is_null($c)); ?>
输出结果:
方法4:利用==或===运算符
可以使用var == null
来判断变量是否为"空"。当变量被赋值为"null"时,检测结果为true;而0、空字符串、false、空数组都检测为false。如果变量未初始化时,程序将会报错。
实质是 == 表达式会对两边的变量做自动类型转换,所以判断结果为 true。
下面通过代码示例来具体看看:
<?php $a = 0; $b = array(); var_dump($a == null); var_dump($b == null); var_dump($c == null); ?>
可以使用var === null
null signifie non-existence : la valeur n'est pas stockée dans l'espace zval en bas de PHP, seule une marque de type IS_NULL est stockée.
Et 0, '0', '', false ces quatre existent. La couche inférieure de php consiste à ouvrir le stockage d'espace zval, avec valeur et type.
🎜🎜🎜la chaîne '0' n'est pas égale à la chaîne '' 🎜🎜🎜🎜int 0 est égale à la chaîne '' null (comparaison non identique, php effectuera la conversion de type) 🎜🎜🎜🎜chaîne '0' et null Différent, int 0 est égal à null🎜🎜🎜🎜🎜🎜Méthode 2 : utilisez la fonction isset()🎜🎜🎜isset : déterminez si la variable a été initialisée et peut être utilisée pour tester si la variable a été configuré. Renvoie vrai si la variable existe déjà ; renvoie faux sinon. 🎜🎜Jetons un coup d'œil à l'exemple de code ci-dessous : 🎜<?php $a = 0; $b = false; $c = 0.0; $d = null; $e = ''; var_dump(0 === $a); // 输出 bool(true) var_dump(0 === $b); // 输出 bool(false) var_dump(0 === $c); // 输出 bool(false) var_dump(0 === $d); // 输出 bool(false) var_dump(0 === $e); // 输出 bool(false) var_dump('' === $e); // 输出 bool(true) var_dump('' === $a); // 输出 bool(false) var_dump('' === $b); // 输出 bool(false) var_dump(0.0 === $c);// 输出 bool(true) var_dump(0.0 === $a); // 输出 bool(false) ?>🎜Résultat de sortie : 🎜🎜🎜🎜🎜Méthode 3 : Utilisez la fonction is_null()🎜🎜🎜is_null : détecte si la variable est "null". 🎜🎜Lorsqu'une variable reçoit la valeur « null », le résultat de la détection est vrai ; 0, la chaîne vide, faux et le tableau vide sont tous détectés comme faux. 🎜🎜Jetons un coup d'œil à l'exemple de code ci-dessous : 🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜Méthode 4 : Utilisez l'opérateur == ou ===🎜🎜🎜🎜🎜Vous pouvez utiliser
var == null
pour juger les variables Si c'est "nul". Lorsqu'une variable reçoit la valeur « null », le résultat de la détection est vrai ; tandis que 0, la chaîne vide, faux et le tableau vide sont tous détectés comme faux. Si la variable n'est pas initialisée, le programme signalera une erreur. 🎜🎜🎜🎜🎜L'essence est que l'expression == effectuera une conversion de type automatique sur les variables des deux côtés, donc le résultat du jugement est vrai. 🎜🎜Jetons un coup d'œil à l'exemple de code ci-dessous : 🎜rrreee🎜🎜🎜🎜🎜Vous pouvez utiliser var === null
pour détecter si la variable est "null", et le type de la variable doit être également "null" . En jugeant "null", égal à is_null a le même effet. 🎜🎜🎜rrreee🎜🎜🎜🎜On peut voir que l'utilisation de === peut bien distinguer les chaînes vides, 0, false et null, et même les entiers et les types à virgule flottante. 🎜🎜D'accord, c'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜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!