解析:php empty 和Null 字元串區別

來源:互聯網
上載者:User
  1. 變數 empty is_null isset
  2. $a=”” true false true
  3. $a=null true true false
  4. var $a true true false
  5. $a=array() true false true
  6. $a=false true false true
  7. $a=15 false false true
  8. $a=1 false false true
  9. $a=0 true false true
  10. $a=”0” true false true
  11. $a=”true” false false true
  12. $a=”false” false false true
複製代碼

只要變數是否為" "或者0,或者是false和null,只要是這些值empty都會返回true,而isset是判斷變數是否存在,只要你這個變數不是null或未賦值,返回結果都是true,而is_null正好是isset的反結果。

聯絡:假設 $var 是任何type。當 empty($var) 為 true 時, (bool)($var) 為 false 。反之亦然。同樣,當 is_null($var) 為 true 時, isset($var) 為 false 。反之亦然。假如:$i=$j+1;這裡的is_null($j)為true

可見:isset用於判斷未定義的情況。Empty可以判斷未定義和已定義,但是為空白,為0的情況。Is_null可以看做是isset的反函數If($運算式)可以看做是empty的反函數當要判斷的內容為數組時,表中僅僅羅列了一種情況。

補充兩種容易誤會的情況:

  1. $b[]=null;
  2. $b[]=null;
  3. //視為數組已存在且不為空白
  4. $c[]="";
  5. $c[]="";
  6. //視為數組已存在且不為空白
  7. ?>
複製代碼

empty(PHP 3, PHP 4, PHP 5)empty -- 檢查一個變數是否為空白描述bool empty ( mixed var )

如果 var 是非空 或非零 的值,則 empty() 返回 FALSE。換句話說,"" 、0 、"0" 、NULL 、FALSE 、array() 、var $var ; 以及沒有任何屬性的對象 都將被認為是空的,如果 var 為空白,則返回 TRUE。

除了當變數沒有置值時不產生警告之外,empty() 是 (boolean) var 的反義詞。參見轉換為布爾值擷取更多資訊。empty() 與 isset() 的一個簡單比較。

  1. $var = 0;
  2. // 結果為 true,因為 $var 為空白
  3. if (empty($var)) {
  4. echo '$var is either 0 or not set at all';
  5. }
  6. // 結果為 false,因為 $var 已設定
  7. if (!isset($var)) {
  8. echo '$var is not set at all';
  9. }
  10. ?>
複製代碼

注: 由於這是一個語言結構而非函數,因此它無法被變數函數調用。注: empty() 只檢測變數,檢測任何非變數的東西都將導致解析錯誤 。換句話說,後邊的語句將不會起作用: empty(addslashes($name))。isset(PHP 3, PHP 4, PHP 5)isset -- 檢測變數是否設定描述bool isset ( mixed var [, mixed var [, ...]] )

如果 var 存在則返回 TRUE,否則返回 FALSE。如果已經使用 unset() 釋放了一個變數之後,它將不再是 isset()。若使用 isset() 測試一個被設定成 NULL 的變數,將返回 FALSE。同時要注意的是一個 NULL 位元組("\0")並不等同於 PHP 的 NULL 常數。警告: isset() 只能用於變數,因為傳遞任何其它參數都將造成解析錯誤。若想檢測常量是否已設定,可使用 defined() 函數。is_null(PHP 4 >= 4.0.4, PHP 5)is_null -- 檢測變數是否為 NULL描述bool is_null ( mixed var )

如果 var 是 null 則返回 TRUE,否則返回 FALSE。查看 NULL 類型獲知變數什麼時候被認為是 NULL,而什麼時候不是。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.