一、empty()函數的定義
empty(mixed $var): bool
empty()函數用於判斷一個變量是否為空,如果為空(即不存在、已被賦值為null、false、0、”或未定義),則返回true;否則返回false。
二、empty()函數的用法
1、判斷變量是否為空
empty()函數的最基本用法是判斷變量是否為空。
$name = ''; if (empty($name)) { echo 'Name is empty'; // 輸出:Name is empty } else { echo 'Name is not empty'; }
對於以下變量調用empty()函數,返回true:
- 未定義的變量
- null
- false
- 0
- ”
而以下變量調用empty()函數,返回false:
- 非空字符串
- 非零整數
- 非空數組
- 非空對象
2、清空變量值
empty()函數還可以通過傳遞變量的引用,來清空變量的值。
$data = array('name' => 'Tom', 'age' => 20); unset($data['name']); // 刪除數據 if (empty($data['name'])) { echo 'Name is empty'; // 輸出:Name is empty }
3、判斷並處理數組元素
可以使用empty()函數,結合foreach語句來判斷數組元素是否為空,從而進行相應處理。
$data = array('name' => '', 'age' => 20, 'gender' => null); foreach ($data as $key => $value) { if (empty($value)) { $data[$key] = 'Unknown'; } } print_r($data); // 輸出:Array ( [name] => Unknown [age] => 20 [gender] => Unknown )
三、empty()函數與其他函數的比較
與empty()函數相關的有以下幾個函數:
1、isset()函數
isset()函數用於判斷一個變量是否已設置並且非null,如果已設置並且非null,則返回true;否則返回false。
所以isset()函數和empty()函數的區別在於,isset()函數可以判斷數組元素是否存在(即已設置),而empty()函數不能。
$data = array('name' => '', 'age' => 20); if (isset($data['name'])) { echo 'Name is set'; // 輸出:Name is set } else { echo 'Name is not set'; }
2、is_null()函數
is_null()函數用於判斷一個變量是否為null,如果是null,則返回true;否則返回false。
所以is_null()函數和empty()函數的區別在於,is_null()函數只能判斷變量是否為null,而不能判斷變量是否存在或非空。
$name = null; if (is_null($name)) { echo 'Name is null'; // 輸出:Name is null } else { echo 'Name is not null'; }
3、strlen()函數
strlen()函數用於獲取字符串長度,如果字符串為空串,則返回0。
所以strlen()函數和empty()函數的區別在於,strlen()函數只能用於字符串類型的變量,而不能用於其他類型的變量。
$text = ''; if (strlen($text) == 0) { echo 'Text is empty'; // 輸出:Text is empty } else { echo 'Text is not empty'; }
總結
empty()函數是一個非常實用的函數,可以用於判斷變量是否為空、清空變量值、判斷並處理數組元素等。要注意empty()函數返回值只有true和false兩種,不能用於判斷變量是否存在。同時,需要結合其他函數的使用,來達到更多的效果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256412.html