如何使用php变量计算(+或 - 或*或/)?

时间:2015-09-28 06:50:03

标签: php

为什么这2个代码不会回显相同的结果?

在第一个代码echo *57上,但我想在第二个代码上回显35

我该怎么做?

<?PHP
$fomular = "*5";
$x = "7";
$res = $fomular."".$x;
echo $res;
?>

<?PHP
echo 5*7;
?>

3 个答案:

答案 0 :(得分:2)

有几个问题。

在你的例子中

...
$res = $fomular."".$x;
...

与说

相同
...
$res = "*5".""."3";
...

这就解释了“* 53”已被回复/

...
$res = $fomular + $x;
// or
$res = $x + $fomular;
...

将返回12,因为它不会评估“*”,而是添加数字。

你可以使用eval(...)但它是邪恶的,并且会真的反对它。

...
echo eval( "5*" . "7" . ";");
...

所以你最好的选择,如果你真的想要回显结果,那就是编写你自己的函数来解析2个字符串并进行操作。

答案 1 :(得分:0)

$formular = 5;
$x = 7;
$res = $formular * $x;
echo $res;

。 (点)在php中是一个字符串连接运算符!如果你尝试将它与任何类型的变量一起使用,它会将它们转换为字符串并放在一起。样本:$ x = 5。 7 - &gt; $ x =&#39; 57&#39 ;;但是,如果您使用任何类型的数学运算符(*,/,+, - ),php会将两个操作数转换为数字形式(float或int),然后执行您的公式并给出结果$ x = 5 * 7; - &GT; $ x = 35; 简而言之:只使用数学运算符来执行公式,而不是点。(对于我的英语不好而言)

答案 2 :(得分:0)

这是因为当你使用。(点)运算符时,它会附加两个变量。

您必须使用以下代码才能获得所需的输出

$formular = 5;
$x=7;
$res=$formular * $x;
echo $res;