我希望代码1与代码2的工作方式相同,但事实并非如此。
<?php
//code 1
$z = '>';
$v = 50;
$a1[0] = 60;
if($v .$z. $a1[0])
{
echo "<td>" . "test" . "</td>";
} else {}
//code 2
if($v > $a1[0]){
echo "<td>" . "test" . "</td>";
} else {}
在上面的代码中我想替换&gt;带有变量的符号,这样我就可以使它变得动态。
我该怎么做?
答案 0 :(得分:6)
基本上,你不能在PHP中使用变量作为运算符。
$v .$z. $a1[0]
表达式所做的就是将变量连接成一个字符串。
我认为能够使用“动态运算符”的最接近的是定义一个可以使用变量选择的操作数组。
$ops = [
'>' => function($a, $b) { return $a > $b; },
'<' => function($a, $b) { return $a < $b; },
'=' => function($a, $b) { return $a == $b; }
];
$z = '>';
$v = 50;
$a1[0] = 60;
if ($ops[$z]($v, $a1[0])) {
echo "<td>" . "test" . "</td>";
}
(请注意,对于您的示例值,$v
不大于$a1[0]
,因此此示例不会回显任何内容。)
关于eval
,由于在您的问题评论中曾多次提及,大多数人建议不要使用它,原因很充分。几乎总有一种更好的方法可以解决您的问题。