当前位置: 首页 > 面试题库 >

Null vs.False vs.0在PHP中

翟源
2023-03-14
问题内容

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


问题答案:

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

Null 意思是“ 没事 ”。变量尚未初始化。

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

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

现在,棘手的是,在像PHP这样的动态语言中 ,它们都在boolean上下文中有一个值 (在PHP中为)False

如果使用进行测试==,则它正在测试布尔值,因此您将获得相等性。如果使用进行测试===,它将测试类型,并且您将得到不等式。

那么为什么它们有用呢?

好吧,看一下strrpos()功能。如果未找到任何内容,则返回False;如果未找到任何内容,则返回0!

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

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

当然,如果您处理状态:

您想要在DebugMode = False(设置为off),DebugMode = True(设置为on)和DebugMode = Null(根本不设置,将导致硬调试;-) 之间有所区别。



 类似资料:
  • 问题内容: 代码将详细说明: 结果返回“其为空”。我以为empty()将检查是否已经设置了变量并在其中具有值。为什么返回“它为空”? 问题答案: http://php.net/empty 以下内容被认为是空的: “”(空字符串) 0(0为整数) 0.0(0为浮点数) “ 0”(0作为字符串) 空值 假 array()(一个空数组) var $ var; (已声明变量,但类中没有值) 请注意,这与强

  • 问题内容: 在运行OSA php命令的Mac OSX Mavericks上,每当我运行php命令时,我都会收到以下错误消息(一切正常,这很烦人) 我跑了 和输出是 在php.ini文件中签入,并且intl唯一加载的位置在顶部,并且已将其注释掉。其他文件内容如下所示: 最后一个斜杠后的内容是扩展名。 我不确定还有什么地方可以看。 任何帮助表示赞赏 问题答案: 我认为您可能已在Xdebug中加载了两次

  • 当我用PHP上传imagen时,我没有收到任何错误,并且服务器上的图像是0字节。考虑的事项: 文件上传在phpinfo()中打开。 在phpinfo()中,上传文件的最大大小为8M Upload_tmp_dir已设置并具有777个权限 如果我运行file_exists($_FILES['userfile']['tmp_name']),它将返回true 如果我运行getimagesize($\u F

  • 问题内容: 在Python 2.6中查看Queue.py时,我发现这个结构有点奇怪: 如果maxsize为0,则队列永远不会满。 我的问题是在这种情况下如何运作?如何0 < 0 == 0被认为是错误的? 问题答案: 我相信Python对关系运算符的序列有特殊的处理方式,以使范围比较易于表达。能说比说好得多。 这些称为链接比较。这是他们文档的链接。 在您谈论的其他情况下,括号会强制在一个关系运算符之

  • 我有Windows XP,最近我安装了32位wamp(apache mysql php)。我测试了安装(使用php和apache连接到mysql数据库),一切正常。 现在我需要连接到Oracle数据库,所以我尝试启用一些与Oracle和oci8相关的扩展。 我做到了: 1)我打开php.ini文件,删除了以下行前的分号: 之前: 之后: 2)我重启了apache和所有服务,我得到了一个 “PHP启

  • 问题内容: 为什么在Python中等于?它不应该像那样抛出异常吗? 问题答案: Wikipedia对历史进行了有趣的报道,并对以下内容的价值有不同的看法: 至少从19世纪初期开始,辩论一直在进行。当时,大多数数学家都同意,直到1821年,柯西(Cauchy)以及诸如未定义形式的表格之类的表达式才被列出。在1830年代,利比里(Libri)发表了令人信服的论点,莫比乌斯(Möbius)站在他身边。