为什么这2个代码不会回显相同的结果?
在第一个代码echo *57
上,但我想在第二个代码上回显35
。
我该怎么做?
<?PHP
$fomular = "*5";
$x = "7";
$res = $fomular."".$x;
echo $res;
?>
<?PHP
echo 5*7;
?>
答案 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;