如果我想检查变量,我需要这样做:
if ( $i != '' || $i != 0 || $i != NULL ) {
// ...do some code
}
这 3 个检查可以通过一些 php 函数或技巧以某种方式合并为 1 吗?
if (!empty($i)) {
// ... do some code
}
请参阅 http://php.net/manual/function.empty.php
所有这些都是 false
y。所以你可以做到
if(!$i) {
}
http://php.net/manual/en/language.types.boolean.php
我可能应该详细说明为什么 OP 有一些不好的假设。PHP 将评估false
的事情列表很长
转换为布尔值时,以下值被视为 FALSE:
- 布尔值 FALSE 本身
- 整数 0(零)
- 浮点数 0.0(零)
- 空字符串和字符串"0"
- 包含零元素的数组
- 特殊类型 NULL(包括未设置的变量)
- 从空标记创建的简单 XML 对象
这就是等效性发挥作用的地方。这是一个比较运算符。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
(并且某些函数将同时返回两者),则必须使用不同的运算符。 ===
用于查看两者是否等效,而不是简单地相等。
$i = 0;
if($i == NULL) {
echo 'true'; //This will succeed
}
if($i === NULL) {
echo 'true'; //This will NOT succeed
}