為什麼在 PHP 中要同時檢查 isset() 和 !empty() 函式?\n
Php 提供了一些神奇的預定義函式來處理即時應用程式中的變數。在本文中,我們將學習 isset() 和 !empty() 函式以及這兩個函式的一些示例。
isset()
isset() 函式是 PHP 中的一個預定義函式,它檢查變數是否在應用程式中宣告並且未賦值為 NULL。此函式將結果恢復為 true 或 false。
讓我們用一個例子來測試一下。
<?php $var1 = NULL; $var2 = 1; var_dump(isset($var1)); var_dump(isset($var2)); ?>
輸出
bool(false) bool(TRUE)
解釋
在上面的示例中,$var1 定義為等於 NULL,即 $var1 = NULL,當對 $var1 執行 isset() 函式時,它將評估為 FALSE,因為 $var1 賦值為 NULL。在第二種情況下,$var2 定義為等於 1,即 $var2 = 1,當對 $var2 執行 isset() 函式時,它將評估為 TRUE,因為 $var1 不為 null。
如果提供了多個引數,則 isset() 僅在所有引數都被視為已設定時才返回 TRUE。評估從左到右進行,並在遇到未定義/未設定的變數時停止。
讓我們用一個例子來測試以上內容。
<?php $a = "10"; $b = "20"; var_dump(isset($a)); var_dump(isset($a, $b)); var_dump(isset($c,$a, $b)); ?>
輸出
bool(true) bool(true) bool(false)
解釋
這裡我們聲明瞭 $a 和 $b 變數並賦值,即 $a ="10" 和 $b = "20",但 $c 未定義。第一個表示式評估為 true,因為 $a 已定義,第二個表示式也評估為 true,因為 $a 和 $b 都已定義。下一個表示式評估為 false,因為 $c 未定義。
讓我們瞭解一下 empty()。
empty()
empty() 函式確定給定變數是否為空或 NULL。!empty() 函式是 empty() 函式的補充。empty() 函式在很大程度上等同於 !isset() 函式,而 !empty() 函式等同於 isset() 函式。它將結果顯示為 TRUE 或 FALSE。讓我們用這個例子來討論一下。
<?php $var1 = 0; var_dump(empty($var1)) ; var_dump(!empty($var1)) ; ?>
輸出
bool(TRUE) bool(FALSE)
解釋
這裡 $var1 定義為等於 0,即 $var1 =0,當我們對其執行 empty() 函式時,它將評估為 TRUE,因為 0 被視為為空。但是 !empty() 函式評估為 false,這等於 isset() 函式的結果。
檢查兩個函式
只要考慮功能,isset() 和 !empty() 函式就會產生相同的結果。但唯一的區別是,當變數不存在時,!empty() 函式不會生成任何警告或 E_Notice。
注意
以下值被認為為空
- " "(空字串)
- 0(作為整數的 0)
- 0.0(作為浮點數的 0)
- "0"(作為字串的 0)
- NULL
- FALSE
- array()(空陣列)
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP