php等于空值,PHP认为null等于z

您暗示了一个深层的问题:什么时候表达式应该为真?

在下面,我将解释您的工作为何不起作用以及如何解决。

在许多语言中,===、==和空字符串(FALSE)都评估为false,这可以使if语句非常简洁直观,但是null、0和""也都是不同的类型。 应该如何比较它们?

该页面告诉我们,如果我们要比较两个变量,则变量将按以下方式转换(在第一个匹配项时退出表格)

Type of First Type of Second Then

null/string string Convert NULL to "", numerical/lexical comparison

bool/null anything Convert to bool, FALSE < TRUE

因此,您正在比较空值与数字。 因此,空值和数字都将转换为布尔值。 本页告诉我们,在这种转换中,===和==都被视为FALSE。

您的表情现在显示为===,这当然是正确的。

但不是您想要的。

该页面提供了PHP比较运算符的列表。

Example Name Result

$a == $b Equal TRUE if $a equals $b after type juggling.

$a === $b Identical TRUE if $a equals $b, AND they are of the same type.

$a != $b Not equal TRUE if $a not equals $b after type juggling.

$a <> $b Not equal TRUE if $a not equals $b after type juggling.

$a !== $b Not identical TRUE if $a not equals $b, or they are not of the same type.

$a < $b Less than TRUE if $a is strictly less than $b.

$a > $b Greater than TRUE if $a is strictly greater than $b.

$a <= $b Less than/equal TRUE if $a is less than or equal to $b.

$a >= $b Greater than/equal TRUE if $a is greater than or equal to $b.

第一个比较器是您现在正在使用的比较。 请注意,它执行了我前面提到的转换。

使用第二个比较器将解决您的问题。 由于null和数字不是同一类型,因此===比较将返回false,而不是像==运算符那样执行类型转换。

希望这可以帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值