作者:泰有趣 | 来源:互联网 | 2017-05-13 02:18
变量为空
以下的东西被认为是空的:
- “” (空字符串)
- 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
- 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教程有兴趣的朋友有所帮助。