PHP使用两个值之间的串联逻辑运算符-数学
嗨,我正在使用Laravel从数据库中检索一些值,以便计算一些东西 这是我拥有的一个非常简单的版本(我有一个配置,其中有多个值,我传递模型名称和值,我可以动态地执行此操作): 如果我连接逻辑运算符,则所有值都会打印出来,例如21/5 但是,如果我这样做:PHP使用两个值之间的串联逻辑运算符-数学,php,laravel,math,Php,Laravel,Math,嗨,我正在使用Laravel从数据库中检索一些值,以便计算一些东西 这是我拥有的一个非常简单的版本(我有一个配置,其中有多个值,我传递模型名称和值,我可以动态地执行此操作): 如果我连接逻辑运算符,则所有值都会打印出来,例如21/5 但是,如果我这样做: $replace = $select/$substitute['value']; 除法是成功的,但我的问题是,我有一个配置,它可能希望操作符被乘法或加法,所以我需要灵活性来传递操作符,你知道为什么它不能这样工作吗?谢谢你的帮助 要执行您要求
$replace = $select/$substitute['value'];
除法是成功的,但我的问题是,我有一个配置,它可能希望操作符被乘法或加法,所以我需要灵活性来传递操作符,你知道为什么它不能这样工作吗?谢谢你的帮助 要执行您要求的操作,您必须
eval()
字符串。然而,这不是一个好的做法,所以这里有另一个解决方案
可以对每个有效运算符使用switch语句,只需在case语句中执行正确的操作。像这样:
switch ($substitute['operator']) {
case '*':
$replace = $select * $substitute['value'];
break;
case '/':
$replace = $select / $substitute['value'];
break;
case '+':
$replace = $select + $substitute['value'];
break;
case '-':
$replace = $select - $substitute['value'];
break;
case '%':
$replace = $select % $substitute['value'];
break;
case '**':
$replace = $select ** $substitute['value']; // or pow() if you use < PHP 5.6
break;
// more cases...
}
开关($substitute['operator'])){
案例“*”:
$replace=$select*$substitute['value'];
打破
案例“/”:
$replace=$select/$substitute['value'];
打破
格“+”:
$replace=$select+$substitute['value'];
打破
案例'-':
$replace=$select-$substitute['value'];
打破
案例“%”:
$replace=$select%$substitute['value'];
打破
案例“**”:
$replace=$select**$substitute['value'];//如果使用
您必须eval()
否则PHP解释器如何知道应该运行它。如果工作正常,请远离eval()
。连接不是一个数学运算。这是一个字符串操作。您希望在连接后eval
字符串-这不是一个好的编程实践。
switch ($substitute['operator']) {
case '*':
$replace = $select * $substitute['value'];
break;
case '/':
$replace = $select / $substitute['value'];
break;
case '+':
$replace = $select + $substitute['value'];
break;
case '-':
$replace = $select - $substitute['value'];
break;
case '%':
$replace = $select % $substitute['value'];
break;
case '**':
$replace = $select ** $substitute['value']; // or pow() if you use < PHP 5.6
break;
// more cases...
}