今天我正在研究一个小的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);
工作正常!
有点困惑!
答案 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)
链接上的更多示例。