时间:2021-07-01 10:21:17 帮助过:2人阅读
以下的东西被认为是空的:
- “” (空字符串)
- 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'); //true
var_dump(0 == ''); //true
var_dump(0 == false); //true
===
同时涉及 值 与类型的比较, 更为严格var_dump(0 === '0.0'); //false
var_dump(0 === ''); //false
var_dump(0 === false); //false
==
比较, 除了 “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)
*/
$var = 1;
var_dump(isset($var)); // trueunset($var);
var_dump(isset($var)); // false$var = null;
var_dump(isset($var)); // false
=== null
。注意
空值之间的==
比较不一定返回 true :
// 不具传递性var_dump(0 == '0'); // truevar_dump('' == 0 ); // truevar_dump('0' == ''); // falsevar_dump(0 == []); // false
最佳实践
==
和 ===
差别在于后者同时进行类型相等判断以上就介绍了php 相等性比较 以及 empty,isset, isnull,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。