使用变量作为运算符

php
2022-08-30 14:14:52

所以我有类似这样的东西:

$a = 3;
$b = 4;
$c = 5;
$d = 6;

我运行一个比较,如

if($a>$b || $c>$d) { echo 'yes'; };

一切都很好。是否可以使用变量代替运算符?像这样:

$e = ||;

然后我可以将其用作

if($a>$b $e $c>$d) { echo 'yes'; };

答案 1

否,该语法不可用。您可以做的最好的方法是使用eval(),这是不推荐的,特别是如果$e来自用户输入(即表单),或者每个运算符作为案例的switch语句

switch($e)
{
    case "||":
        if($a>$b || $c>$d)
            echo 'yes';
    break;
}

答案 2

这是不可能的,但你可以改用函数。当然,你必须自己定义它们。使用 PHP 5.3 的闭包,这将相当简单:

$or = function($x, $y)
{
    return $x || $y;
};

if ($or($a > $b, $c > $d))
{
    echo 'yes';
};

推荐