在PHP中呼出一个可用的运算符
假设我有以下代码:在PHP中呼出一个可用的运算符,php,echo,operator-keyword,Php,Echo,Operator Keyword,假设我有以下代码: $operator = "+"; $num1 = 10; $num2 = 32; echo "the sum of " . $num1 . " and " . $num2 . " is " . ($num1.$operator.$num2); 正如您所看到的,我试图使用一个变量通过连接它来定义操作符。但是,当运行此代码时,操作员显示为纯文本,而不是用于回答问题 很明显,我得到这样的输出:“10和32之和是10+32” 我肯定做错了什么吗?尽量避免评估。但以下是使用eval
$operator = "+";
$num1 = 10;
$num2 = 32;
echo "the sum of " . $num1 . " and " . $num2 . " is " . ($num1.$operator.$num2);
正如您所看到的,我试图使用一个变量通过连接它来定义操作符。但是,当运行此代码时,操作员显示为纯文本,而不是用于回答问题
很明显,我得到这样的输出:“10和32之和是10+32”
我肯定做错了什么吗?尽量避免评估。但以下是使用eval进行评估的答案:
<?php
$operator = '+';
$num1 = 10;
$num2 = 32;
eval(sprintf('echo %d %s %d;', $num1, $operator, $num2));
你说的错是什么意思?您刚刚告诉PHP要准确地输出该字符串。否则,请不要使用
eval
。使用开关
案例。这样更安全。
$operator = '+';
$num1 = 10;
$num2 = 32;
switch ($operator) {
case '+':
$result = $num1 + $num2;
break;
case '-':
$result = $num1 - $num2;
break;
case '*':
$result = $num1 * $num2;
break;
case '/':
$result = $num1 / $num2;
break;
default:
echo "Invalid operator";
break;
}
echo 'Result: ' . $result;