為什麼在 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()(空陣列)


更新於: 2019-07-30

349 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.