在PHP中,empty()
和 isset()
都可以用來檢查一個變量是否為空,但它們之間有一些區別。
isset()
函數用于檢測一個變量是否已經設置,如果一個變量已經被設置且其值不為NULL,那么isset()
返回TRUE,否則返回FALSE。
empty()
函數用于檢測一個變量是否為空,如果一個變量不存在、為NULL、為FALSE、為空字符串、為0、為0.0、為空數組則返回TRUE,否則返回FALSE。
所以,當你需要檢查一個變量是否設置且不為NULL時,使用isset()
。而當你需要檢查一個變量是否為空(包括未設置或為NULL)時,使用empty()
。
例如:
$var1 = '';
$var2 = NULL;
$var3 = 0;
$var4 = '0';
$var5 = false;
// 使用 isset()
echo isset($var1) ? 'var1 已設置' : 'var1 未設置'; // 輸出:var1 已設置
echo isset($var2) ? 'var2 已設置' : 'var2 未設置'; // 輸出:var2 未設置
echo isset($var6) ? 'var6 已設置' : 'var6 未設置'; // 輸出:var6 未設置
// 使用 empty()
echo empty($var1) ? 'var1 為空' : 'var1 非空'; // 輸出:var1 為空
echo empty($var2) ? 'var2 為空' : 'var2 非空'; // 輸出:var2 為空
echo empty($var3) ? 'var3 為空' : 'var3 非空'; // 輸出:var3 為空
echo empty($var4) ? 'var4 為空' : 'var4 非空'; // 輸出:var4 非空
echo empty($var5) ? 'var5 為空' : 'var5 非空'; // 輸出:var5 為空
echo empty($var6) ? 'var6 為空' : 'var6 非空'; // 輸出:var6 為空
從上面的例子可以看出,isset()
只檢查變量是否設置且不為NULL,而 empty()
檢查變量是否為空(包括未設置或為NULL)。根據實際需求選擇合適的函數。