为什么 PHP 的串联和加法会导致意外结果?

Susan Sarandon
发布: 2024-10-31 10:50:29
原创
394 人浏览过

Why Does PHP Concatenation and Addition Lead to Unexpected Results?

揭开 PHP 的歧义:串联和加法的奇怪案例

当加法和串联时,PHP 的运算符优先级和关联性可能会导致意外结果运营商参与其中。考虑这段代码:

<code class="php">$a = 1;
$b = 2;

echo "sum: " .  $a + $b; // Output: 2
echo "sum: " . ($a + $b); // Output: sum: 3</code>
登录后复制

为什么会出现差异?这一切都取决于 PHP 的运算符求值顺序。

加法 ( ) 和连接 (.) 运算符具有相同的优先级,但它们是左关联的。这意味着,当 PHP 遇到涉及多个具有相同优先级的运算符的表达式时,它首先计算最左边的运算符,然后向右计算。

在第一个 echo 语句中,连接运算符 (.) 首先计算,结果如下:

"sum: 1" + 2
登录后复制

然后将字符串“sum: 1”转换为数值 (0) 并添加到 $b (2),生成2.

的输出在第二个 echo 语句中,括号强制加法运算符首先计算:

($a + $b) . "sum:"
登录后复制

然后将结果与字符串“sum:”连接,产生所需的输出“sum:3”。

此行为记录在 PHP 关于运算符优先级的文档中。它指出“具有相同优先级的运算符从左到右计算,即先 ,然后 .,然后 -。”

以上是为什么 PHP 的串联和加法会导致意外结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!