如果我想检查变量,我需要这样做:
if ( $i != '' || $i != 0 || $i != NULL ) {
// ...do some code
}
这3个检查是否可以通过某些php函数或技巧以某种方式合并为1?
答案 0 :(得分:3)
if (!empty($i)) {
// ... do some code
}
答案 1 :(得分:3)
所有这些都是实际的false
y。所以你可以做到
if(!$i) {
}
http://php.net/manual/en/language.types.boolean.php
我应该详细说明为什么OP有一些不好的假设。 PHP将评估为false
的内容列表很长
转换为布尔值时,以下值被视为FALSE:
- 布尔值FALSE本身
- 整数0(零)
- 浮点数0.0(零)
- 空字符串,字符串“0”
- 包含零元素的数组
- 特殊类型NULL(包括未设置的变量)
- 从空标签创建的SimpleXML对象
这是等效性发挥作用的地方。这是一个comparison operator。 OP有这个
if ( $i != '' || $i != 0 || $i != NULL )
这三个实际上都是同一个测试。拿这个代码
$i = 0;
if($i == '') {
echo 'true';
}
if($i == 0) {
echo 'true';
}
if($i == NULL) {
echo 'true';
}
所有三个陈述都会响起。因此,如果您想知道$i
实际上是NULL
还是false
而不是0
(并且some functions将返回两者),您必须使用不同的运营商。 ===
用于查看两者是否相等而不是简单相等。
$i = 0;
if($i == NULL) {
echo 'true'; //This will succeed
}
if($i === NULL) {
echo 'true'; //This will NOT succeed
}