需要解释PHP中的加/减/乘和偏差

时间:2016-10-18 07:50:36

标签: php math operators

今天我正在研究一个小的PHP代码加/减和乘法,但我最终发现了一些我以前不知道的东西。

我是Plus 2值,123456 + 123456 = 24690,我的代码是这样的:

<?php 
$value1=12345;
$value2=12345;

$output=$value1+$value2;

echo $output;
?>

返回正确的值:

所以我必须用字符串打印这个值像这样:

Total Value: 24690

我使用此代码:

echo 'Total Value:'.$value1+$value2;

它的回报:12345而不是

 Total Value: 24690

我知道“。”不是算术运算符,所以我需要小解释为什么这样做。

但是当我做的时候

echo 'Total Value:'.($value1+$value2);

工作正常!

有点困惑!

3 个答案:

答案 0 :(得分:0)

它首先将$value1与字符串连接起来,然后尝试将其添加到字符串中,并且不能将数字添加到字符串中,因此您可以获得该输出。

使用大括号时,它只是连接大括号的内容并在大括号内执行数学运算。

遵循BODMAS

答案 1 :(得分:0)

当你 echo 'Total Value:'.$value1+$value2;

代码执行实际上就是这样:

echo ('Total Value: ' . $value1) + $value2;

答案 2 :(得分:-1)

此行为称为Type Juggling。从手册中可以看出:

  

变量的类型由使用变量的上下文确定。也就是说,如果将字符串值赋给变量$ var,则$ var变为字符串。如果然后将整数值赋给$ var,则它变为整数。

示例:

$foo = "1";  // $foo is string (ASCII 49)
$foo *= 2;   // $foo is now an integer (2)

链接上的更多示例。