PHP is_null() 函数



PHP 将 NULL 定义为其特殊数据类型之一。它表示某个变量未被赋值任何特定数据类型的值。它是 PHP 中的内置常量,用于表示故意缺少任何对象或值。可以使用unset()函数显式地将变量赋值为 NULL 或将其值设置为 null。

is_null() 函数

PHP 提供了一个布尔函数is_null() 来检查变量是否确实是 NULL 类型。

is_null(mixed $value): bool

示例 1

如果任何变量显式地赋值为 NULL,显然is_null()函数将返回true

<?php
   $x = NULL;
   echo "Variable \$x is null? ";
   var_dump(is_null($x));
?>

它将产生以下输出

Variable $x is null? bool(true)

示例 2

如果取消设置具有某个值的变量,那么 is_null() 函数也会返回 true,但会显示警告

<?php
   $x = "Hello";
   unset($x);
   echo "Variable \$x is null?\n";
   var_dump(is_null($x));
?>

它将产生以下输出

Variable $x is null?
bool(true)

PHP Warning:  Undefined variable $x in /home/cg/root/89262/main.php on line 5

示例 3

同样,如果您只是声明一个变量,而没有为其赋值任何值,则 is_null() 函数将返回true 并显示警告:

<?php
   $y;
   echo "Variable \$y is null?\n";
   var_dump(is_null($y));
?>

它将产生以下输出

Variable $y is null?
bool(true)
Warning: Undefined variable $y in hello.php on line 9

示例 4

您也可以使用等号运算符 (==) 来检查变量是否为 NULL。

<?php
   $x = NULL;
   if ($x === NULL) {
      echo '$x is NULL';
   } else {
      echo '$x is not NULL';
   }
?>

它将产生以下输出

$x is NULL

示例 5

空字符串 "" 不被认为等于 NULL。因此,is_null() 函数以及 "==" 运算符都返回false。请查看以下示例:

<?php
   $y = "";
   if ($y === NULL) {
      echo '$y is NULL';
   } else {
      echo '$y is not NULL';
   }
   echo "$y is null?\n";
   var_dump(is_null($y));
?>

它将产生以下输出

$y is not NULL is null?
bool(false)

PHP 中与 is_null() 函数相关的另外两个函数是isset()函数和empty()函数。

isset() 函数

isset() 函数确定变量是否已声明且不同于 NULL。

isset(mixed $var, mixed ...$vars): bool

示例

赋值为 NULL 的变量被认为是未设置的。

<?php
   $x = NULL;
   echo '$x is set? ';
   var_dump(isset($x));
?>

它将产生以下输出

$x is set? bool(false)

请注意,空字符 ("\0") 不等同于 PHP 的 null 常量。

empty() 函数

empty() 函数检查变量是否被认为为空。如果变量不存在或其值为 NULL,则该变量被认为为空。如果变量不存在,empty() 不会生成警告。

示例 1

请查看以下示例:

<?php
   $x = NULL;
   echo '$x is empty? ';
   var_dump(empty($x));
   $y;
   echo '$y is empty? ';
   var_dump(empty($y));
?>

它将产生以下输出

$x is empty? bool(true)
$y is empty? bool(true)

示例 2

如果变量设置为 "0"、NULL 或根本未设置,则 empty() 函数返回true

<?php
   $var = 0;
   if (empty($var)) {
      echo '$var is either 0, empty, or not set at all';
   }
?>

它将产生以下输出

$var is either 0, empty, or not set at all
广告