让我们有一个简单的PHP脚本
<?php
var_dump("php" == 0);根据官方文件(https://www.php.net/manual/en/types.comparisons.php),这应该成为true
,但它有,对于PHP8.0,对于PHP8.0没有
在当前版本的PHP8 (8.0.0 - 8.0.2)中,它会转移到false。

对此功能是否有任何未经记录的更改,还是这是一个错误?还是我漏掉了什么?
谢谢
发布于 2021-02-25 17:27:04
PHP文档维护者这里,PHP 8确实改变了语义,这在迁移指南中得到了展示。然而,文档的其他部分仍然落后,因为我们没有足够的人力/时间来编辑和记录与PHP 8相关的所有更改。
因此,这不是一个bug,更多的事实是,当前的类型杂耍页面已过时的PHP8.0。
可以通过对GitHub存储库的拉请求对文档进行贡献。
发布于 2021-02-25 08:02:04
当PHP8发布时,他们还在网站上发布了一个发布公告。这是一个新的重大变化的一部分,更粗的字符串到数字比较。
引用如下:
当与数字字符串比较时,PHP 8使用数字比较。否则,它将数字转换为字符串,并使用字符串比较。
发布于 2021-02-25 08:04:51
这种行为记录在向后不兼容的变化中。
字符串对数字比较 数字和非数字字符串之间的非严格比较现在通过将数字转换为字符串和比较字符串来工作。数字和数字字符串之间的比较继续像以前一样工作。值得注意的是,这意味着0 ==“number”现在被认为是假的.
https://stackoverflow.com/questions/66363795
复制相似问题