PHP 在添加和连接时很困惑

标签 php sum concatenation parentheses

我有以下代码:

<?php

    $a = 1;
    $b = 2;

    echo "sum: " .  $a + $b;
    echo "sum: " . ($a + $b);

?>

当我执行我的代码时,我得到:

2
sum: 3

为什么它无法在第一个 echo 中打印字符串 "sum:"?加法用括号括起来好像没问题。

这种奇怪的行为是否有任何记录?

最佳答案

加法 + 运算符和连接 . 运算符都具有相同的 operator precedence。 ,但由于它们是关联的,因此它们的计算方式如下:

echo (("sum:" . $a) + $b);
echo ("sum:" . ($a + $b));

所以你的第一行首先进行连接,最后是:

"sum: 1" + 2

(因为这是一个数字上下文,你的 string gets converted to an integer 因此你最终得到 0 + 2,然后给你结果 2。)

关于PHP 在添加和连接时很困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10841124/

相关文章:

php - Magento install 在可用时提示缺少 InnoDB

MySQL 连接脚本

curl - file_get_contents 和 curl 都不起作用

php - 如何在 laravel 5.4 中为所有请求和响应设置日志

python - 如何在程序中添加列表的总和? (Python)

nosql - Cassandra 高效表走

连接两个 int 数组

regex - 使用 XPath 1.0,如何让多个匿名函数对提取的内容进行操作?

php - 如何解决 Paypal 保险库信用卡扣费失败的问题

r - 如何选择组合之和服从特定分布的样本组合?