! (NULL | | 0 |';';)如果同时在PHP中使用条件

! (NULL | | 0 |';';)如果同时在PHP中使用条件,php,if-statement,Php,If Statement,如果我想检查变量,我需要执行以下操作: if ( $i != '' || $i != 0 || $i != NULL ) { // ...do some code } 这3个检查是否可以通过某种php函数或技巧以某种方式合并为1 if (!empty($i)) { // ... do some code } 请看 请参见所有这些实际上都是falsey。所以你可以 if(!$i) { } 我可能应该详细说明为什么OP有一些不好的假设。PHP将评估为false的内容列表很

如果我想检查变量,我需要执行以下操作:

if ( $i != '' || $i != 0 || $i != NULL ) {

   // ...do some code

}
这3个检查是否可以通过某种php函数或技巧以某种方式合并为1

if (!empty($i)) {
    // ... do some code
}
请看


请参见

所有这些实际上都是falsey。所以你可以

if(!$i) {

}

我可能应该详细说明为什么OP有一些不好的假设。PHP将评估为
false
的内容列表很长

转换为布尔值时,以下值被视为FALSE:

  • 布尔值本身是假的
  • 整数0(零)
  • 浮动0.0(零)
  • 空字符串和字符串“0”
  • 零元素数组
  • 特殊类型NULL(包括未设置的变量)
  • 从空标记创建的SimpleXML对象
这就是等效性发挥作用的地方。这是一个好主意。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
}

它们实际上都是
false
y。所以你可以

if(!$i) {

}

我可能应该详细说明为什么OP有一些不好的假设。PHP将评估为
false
的内容列表很长

转换为布尔值时,以下值被视为FALSE:

  • 布尔值本身是假的
  • 整数0(零)
  • 浮动0.0(零)
  • 空字符串和字符串“0”
  • 零元素数组
  • 特殊类型NULL(包括未设置的变量)
  • 从空标记创建的SimpleXML对象
这就是等效性发挥作用的地方。这是一个好主意。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
}

对empty()将起作用。请看这里,您应该发布一个答案@JacobWait。。。。$i可以同时是这三个(“”,0,NULL)吗??这个if语句看起来总是正确的。@miliesmith Good point,我通常不会使用或与
一起使用=
如果查询数据库并在列中作为字符串检查
NULL
,则这可能会有所不同。是!empty()将起作用。请看这里,您应该发布一个答案@JacobWait。。。。$i可以同时是这三个(“”,0,NULL)吗??这个if语句看起来总是正确的。@miliesmith Good point,我通常不会使用或与
一起使用=
如果您查询数据库并在列中作为字符串检查
NULL
,这可能会有所不同。@user2989475我必须检查,但是yes@user2989475是的,它将键入convert。我在上面的评论中发布的链接包含了empty可以使用的所有项目。“0”是其中之一。@user2989475我必须检查,但是yes@user2989475是的,它将键入convert。我在上面的评论中发布的链接包含了empty可以使用的所有项目。“0”是其中之一。