變數為空白
以下的東西被認為是空的:
- “” (Null 字元串)
- 0 (作為整數的0)
- 0.0 (作為浮點數的0)
- “0” (作為字串的0)
- NULL
- FALSE
- array() (一個空數組)
- $var; (一個聲明了,但是沒有值的變數)
判斷語句中空值返回false,以下代碼不會產生任何輸出,因為if 語句中的判斷都為false:
$emptyList = ["", 0, 0.0, "0", NULL, FALSE, array(), $var, ];foreach($emptyListas$val) { if ($val) { var_dump($val); }}
比較子: == 與 ===
var_dump(0 == '0.0'); //truevar_dump(0 == ''); //truevar_dump(0 == false); //true
var_dump(0 === '0.0'); //falsevar_dump(0 === ''); //falsevar_dump(0 === false); //false
- null 與 空值 通過
== 比較, 除了 “0” ,都返回true:
$emptyList = ["", 0, 0.0, "0", NULL, FALSE, array(), $var, ];foreach($emptyListas$val) { var_dump($val == null);}
empty, isset, isnull
$emptyList = ["", 0, 0.0, "0", NULL, FALSE, array(), $var, ];foreach ($emptyList as $e) { var_dump(empty($e));}/*bool(true)bool(true)bool(true)bool(true)bool(true)bool(true)bool(true)bool(true)*/
- isset:判斷變數var 存在並且值不是 NULL 則返回 TRUE,否則返回 FALSE。
$var = 1;var_dump(isset($var)); // trueunset($var);var_dump(isset($var)); // false$var = null;var_dump(isset($var)); // false
- isnull: 判斷變數是否 為 null , 等價於
=== null。
注意
空值之間的==比較不一定返回 true :
// 不具傳遞性var_dump(0 == '0'); // truevar_dump('' == 0 ); // truevar_dump('0' == ''); // falsevar_dump(0 == []); // false
最佳實務
- 空值判斷使用 empty 判斷;
- isset 無法判斷存在但值為null的變數;
- php
== 和 === 差別在於後者同時進行類型相等判斷
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
').text(i)); }; $numbering.fadeIn(1700); }); });
以上就介紹了php 相等性比較 以及 empty,isset, isnull,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。