为什么 PHP 在添加和连接整数时会回显'2”?

Patricia Arquette
发布: 2024-10-29 23:45:29
原创
305 人浏览过

Why Does PHP Echo

PHP 的有趣行为:解开求和与串联困境

在 PHP 编程领域,最近关于添加时令人困惑的行为的讨论连接值激发了好奇心。

让我们深入研究这个异常,如以下代码片段所示:

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

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

执行此代码时,人们会期望两个回显都输出“总和:3”。然而,令人惊讶的是,第一个回显显示“2”,让开发人员感到困惑。为什么会出现这种情况?

关键在于PHP中的运算符优先级和结合性。加法 ( ) 和串联 (.) 运算符共享相同的优先级,使它们具有左结合性。这些运算符的求值顺序变得至关重要:

  1. 在第一个 echo 中,首先执行串联,得到“sum: 1”。
  2. 然后转换该字符串由于数字上下文而转换为整数,有效地将加法转换为 0 2,产生“2”。

但是,在第二个回显中,括号确保加法发生在串联之前,给出我们得到了想要的结果,“sum: 3”。

这种有趣的行为虽然没有明确记录,但可以通过实验和理解 PHP 中运算符优先级和关联性的细微差别来发现。

以上是为什么 PHP 在添加和连接整数时会回显'2”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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