gpt4 book ai didi

php - 为什么-1> null在php中为真

转载 作者:IT王子 更新时间:2023-10-29 01:12:18 28 4
gpt4 key购买 nike

在 PHP (5.3.14) 中,以下代码返回 true:

-1 > null

JavaScript 中完全相同的代码返回 false。这背后的原因是什么?

最佳答案

当一侧为 null 时,PHP 将两侧都转换为 bool 值。

Comparison Operators 上的 PHP 手册部分声明操作数 1 的类型为“bool 或 null”,反之亦然,它“将两边都转换为 bool,FALSE < TRUE”。

任何具有非零值的数字都是 considered to be truthy ,尽管这可能不直观。


在 JavaScript 中,比较的定义不同,因此它们按数字进行比较(null -> 0)。

ECMA-262 ,官方 JavaScript 规范声明:

3. If it is not the case that both Type(px) is String and Type(py) is String, then

a. Let nx be the result of calling ToNumber(px). Because px and py are primitive values evaluation order is not important.
b. Let ny be the result of calling ToNumber(py).

众所周知,PHP 具有相当不一致的类型强制系统 -- PHP: a fractal of bad design重点介绍了 PHP 遇到的其他一些问题。 (我敢说,我个人认为它比 JavaScript 更糟糕,JavaScript 也是一种以偷偷摸摸的类型强制转换而闻名的语言。)

关于php - 为什么-1> null在php中为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23405376/

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