PHP计算器增加

PHP计算器增加,php,Php,我正在创建一个简单的计算器。我只是在学习php,这是一个小项目。我创建了一个有两个输入的计算器,但我现在只测试了一个。它可以工作,但只有当您键入number+number时才能工作。如果它是number+number+number,则不起作用 我希望它会工作,如果你输入2+2+2。。。或者2*2*2。。。或者6-2-2。。。和2/2/2 代码: //创建变量 $y=$_POST[“input1”]; //屏幕上的回波输入值 回声“操作:”$Y“”; //验证 如果(空($y)){ ?> $(文档

我正在创建一个简单的计算器。我只是在学习php,这是一个小项目。我创建了一个有两个输入的计算器,但我现在只测试了一个。它可以工作,但只有当您键入number+number时才能工作。如果它是number+number+number,则不起作用

我希望它会工作,如果你输入2+2+2。。。或者2*2*2。。。或者6-2-2。。。和2/2/2

代码:

//创建变量
$y=$_POST[“input1”];
//屏幕上的回波输入值
回声“操作:”$Y“

”; //验证 如果(空($y)){ ?> $(文档).ready(函数(){ $('#error').append('错误:您的输入为空'); }); $(文档).ready(函数(){ $('#error').append('错误:您只能输入数字'); });
这通常是一种不好的做法,但在这里您可以使用eval。但是您必须首先检查字符串是否包含不允许的字符

$allowedCharacters = "0123456789./*-+()% ";
if(preg_match('/^[^'.preg_quote($allowedCharacters).']+$/'), $y) {
    eval('$result = '.$y.';');
    echo "Calculation: " . $result;
}

唯一的问题是您无法处理错误。

您可以将其用于相同的操作

$test='2+2*3';
eval('$calc = '.$test.';');
echo "Calculation: " . $calc;

输出应该是:8

将字符串分解成一个数组,使用分隔符并使用+-*/。检查
eval()
函数。此注释可能会有所帮助
$test='2+2*3';
eval('$calc = '.$test.';');
echo "Calculation: " . $calc;