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
廣告