【问题标题】:I was running the following PHP code using addition? [duplicate]我正在使用加法运行以下 PHP 代码? [复制]
【发布时间】:2015-06-18 18:19:18
【问题描述】:
  1. 这是代码:

        <?php
        $a = "4 fox and 3 cows"; // it is simple string
        $b = 22;
        echo $ab = $a + $b;
        echo "output::".$ab;
        ?>'
    

    输出: 只读取第一个索引 26 这背后的逻辑是什么..? 相反,我应该得到一个错误..

2.另一个例子:

     <?php
        $a = "four fox and 3 cows"; // it is simple string
        $b = 22;
        echo $ab = $a + $b;
        echo "output::".$ab;
        ?>'
   output:
   22
   what is the logic behind this..?

【问题讨论】:

  • 我们需要一些代码来提供帮助
  • $a 通过截断不属于有效 int 的所有内容转换为 int。 4+22 = 26。
  • 为什么会出现错误?当您对字符串执行加法时,PHP 会首先尝试将字符串转换为整数。在这种情况下,它会在字符串的开头看到4,并丢弃其余部分。 (如果字符串开头没有有效数字,则变为 0)。所以 22 + 4 是 26。
  • 字符串浓度与. pperatot
  • 我喜欢这类问题总是得到 4 个以上的答案...

标签: php


【解决方案1】:

您应该查看Type Juggling,php 是否最好适应动态转换类型转换的能力,在 php 中使用 + 运算符意味着 2 个数字,无论它们是整数、小数等。

由于字符串没有整数值,当您使用 + 运算符时,它将使用可以组成有效整数的字符串的第一部分。

由于您的示例以 "4 " 开头,它会截断其他所有内容并将 4 转换为整数,使其成为 4+22,即 26。

【讨论】:

  • 要成为一个好的答案,您至少应该用它的名字来称呼它:type juggling。在 PHP 中了解这一点很重要。
【解决方案2】:

使用 .用于连接字符串的运算符。

+ 运算符会将字符串转换为数字并添加它们

【讨论】:

  • 我不认为他是在字符串连接之后
  • 根本不清楚该代码应该做什么。只是给一些指示。
  • @iam-decoder 这就是我的想法,但不可能尝试将字符串作为数字与另一个数字相加。可能只是一个例子或其他东西。
  • 另外,这就是为什么我赞成这个和上面的(只是为了反对-1。)
  • 感谢@Evan Carslake 的支持...
【解决方案3】:

如果你想将数字和字符串连接起来,php中的运算符是.,而不是+

否则,为什么要在字符串中添加数字?你期待什么结果?在这些情况下,php 似乎将字符串解析为 int,而忽略了它可以理解的数字之后的所有内容。

【讨论】:

    【解决方案4】:

    + 只是将您的字符串转换为 int,将所有未知的内容剥离为数字。

    "4 fox and 3 cows"
    

    ^^> 那里的所有东西都被剥离了,因为无法处理fox and 3 cows的数字,php从左到右读取数字,一旦遇到奇怪的东西,它就会停止。

    【讨论】:

    • 不完全正确。这是工作中的类型杂耍。
    • @John 所以?还有什么不正确的?
    猜你喜欢
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2016-10-27
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多