加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP串联字符串和算术运算

发布时间:2020-12-13 14:15:35 所属栏目:PHP教程 来源:网络整理
导读:我不久前开始学习 PHP,我遇到了这个问题: ?php$a = 1;$b = 2;echo "$a * $b = " . $a * $b;echo "br /";echo "$a / $b = " . $a / $b;echo "br /";echo "$a + $b = " . $a + $b;echo "br /";echo "$a - $b = " . $a - $b;echo "br /"; 我得到以下输出: 1 *
我不久前开始学习 PHP,我遇到了这个问题:
<?php

$a = 1;
$b = 2;

echo "$a * $b  = " . $a * $b;
echo "<br />";

echo "$a / $b  = " . $a / $b;
echo "<br />";

echo "$a + $b  = " . $a + $b;
echo "<br />";

echo "$a - $b  = " . $a - $b;
echo "<br />";

我得到以下输出:

1 * 2 = 2
1 / 2 = 0.5
3
-1

输出中的最后两行不是我所期望的.

为什么是这样?这些表达式是如何评估的?我正在努力更好地理解这门语言.

发生这种情况是因为连接运算符比加法或减法运算符具有 higher precedence,但乘法和除法具有比串联更高的优先级.

那么,你真正执行的是:

echo ("$a + $b  = " . $a) + $b;
echo ("$a - $b  = " . $a) - $b;

在第一种情况下,这变成了:

"1 + 2 = 1" + $b

哪个PHP尝试将“1 2 = 1”转换为数字(因为type juggling)并得到1,将表达式转换为:

1 + 2

这就是你得到3的原因.相同的逻辑可以应用于减法条件.

相反,如果在计算周围加上括号,您将获得所需的输出.

echo "$a + $b  = " . ($a + $b);
echo "$a - $b  = " . ($a - $b);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读