【问题标题】:PHP == converting "2.5" to 2?PHP == 将“2.5”转换为 2?
【发布时间】:2012-09-21 19:43:42
【问题描述】:

我对这个相等运算符有点困惑。

回声 (2 == "2.5time")

应该输出为 1/true。

“2.5time”字符串应类型转换为整数并输出 2 作为整数。

但它似乎没有输出任何东西。

谁能解释一下?

【问题讨论】:

  • 嗯,这就是我正在测试的完整代码。

标签: php casting equals operator-keyword


【解决方案1】:

如果它没有输出任何内容,则表示为假,请执行 var_dump(2 == "2.5time") 以查看发生了什么。

【讨论】:

    【解决方案2】:

    比较是让 PHP 解析字符串并得到一个数字 2.5,这是一个浮点数。然后将其与您的整数进行比较,该整数被视为浮点数 2.0

    【讨论】:

      【解决方案3】:

      如果您希望将字符串开头的数字作为整数处理,则必须将它们类型转换为整数,因此

      if(2 == (int)"2.5times") // will be true
      

      【讨论】:

        【解决方案4】:

        如果使用 == 运算符,则会比较所有的 String。

        (2 == "2") // is true, because is the same value
        (2 === "2") // is false, because is the same value, but is different types
        (2 == "23") // is false, contains different values
        

        但在您的情况下,最好使用strpos 在字符串中查找子字符串。

        【讨论】:

          猜你喜欢
          • 2012-02-21
          • 2013-04-09
          • 1970-01-01
          • 2015-12-13
          • 2015-04-21
          • 2019-02-25
          • 1970-01-01
          • 1970-01-01
          • 2017-10-17
          相关资源
          最近更新 更多