gpt4 book ai didi

php - PHP 中的 Null vs. False vs. 0

转载 作者:IT老高 更新时间:2023-10-28 11:44:30 25 4
gpt4 key购买 nike

有人告诉我,优秀的开发人员可以发现/利用 NullFalse0 之间的区别以及所有其他好的“无”实体。
有什么区别,特别是在 PHP 中?和===有关系吗?

最佳答案

它是特定于语言的,但在 PHP 中:

Null 表示“”。 var 尚未初始化。

False 表示“在 bool 上下文中不正确”。用于明确表明您正在处理逻辑问题。

0 是一个 int。与上面的其余部分无关,用于数学。

现在,棘手的是,在像 PHP 这样的动态语言中,所有这些语言在 bool 上下文中都有一个值,这(在 PHP 中)是 False

如果您使用 == 对其进行测试,它正在测试 bool 值,因此您将获得相等性。如果你用===测试它,它会测试类型,你会得到不等式。

那么它们为什么有用呢?

好吧,看看 strrpos() 函数。如果没有找到任何内容,则返回 False,如果在字符串的开头找到内容,则返回 0!

<?php
// pitfall :
if (strrpos("Hello World", "Hello")) {
// never exectuted
}

// smart move :
if (strrpos("Hello World", "Hello") !== False) {
// that works !
}
?>

当然,如果你处理状态:

您想在 DebugMode = False(设置为关闭)、DebugMode = True(设置为打开)和 DebugMode = Null(根本没有设置,会导致硬调试;-))。

关于php - PHP 中的 Null vs. False vs. 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/137487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com