首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 中 empty() 能否替代 isset() 判斷變數是否設定?

     編輯:PHP 相關知識

核心差異

函式用途回傳 true 情況
isset()檢測變數是否存在且非 NULL變數已宣告且值 != NULL
empty()檢查變數是否為「空」"", 0, "0", NULL, FALSE, array(), 未宣告變數

未宣告變數測試

var_dump(empty($undefined)); // bool(true)

empty() 確實能偵測未設定變數,但語意不如 isset() 明確。

最佳實務建議

  • 僅判斷存在性 → isset()。
  • 需同時排除 0、空字串、空陣列 → if (!empty($var)) 替代 if (isset($var) && !empty($var))。
  • 需嚴格判斷 NULL → 必須用 isset() 或 is_null(),empty() 無法區分 NULL 與 0。

效能與限制

  • 兩者效能極高且相近,皆為語言結構而非函式。
  • 不能用於可變函式呼叫,舊版 PHP 亦不接受函式回傳值作為參數(PHP 5.5+ 已支援)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved