gpt4 book ai didi

php - 为什么 "someString"== 0 在 PHP 中评估为真

转载 作者:行者123 更新时间:2023-12-02 07:01:03 24 4
gpt4 key购买 nike

我对 PHP 中的 truth 有点困惑。

我的理解是0计算为假,非空字符串(除非字符串为“0”)计算为真。

正如我所料:

var_dump((bool) 0);              // prints "boolean false"
var_dump((bool) 'someString'); // prints "boolean true"

但随后我对以下结果感到惊讶:

var_dump((0=='someString'));     // prints "boolean true"

我的问题是,为什么 0=='someString' 评估为 true?

最佳答案

当使用比较 (==) 运算符时,字符串在与另一个整数比较时将被转换为整数。这是因为 type juggling in PHP .所以 "someString" 的计算结果为零,因为它被转换为整数并且没有前导数字。如果您使用相同的运算符 (===),则不会进行类型转换,因此 "someString" 将被视为文字字符串,然后您的语句将评估为 false。

执行类型杂耍时,以下内容将评估为 false。其他一切都将被评估为真:

  • “”(空字符串)
  • 0(0 为整数)
  • 0.0(0 为 float )
  • “0”(0作为字符串)
  • 错误
  • array()(一个空数组)
  • $var; (声明的变量,但没有值)

关于php - 为什么 "someString"== 0 在 PHP 中评估为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639519/

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