Dynamic Comparison Operators in PHP

后端 未结 11 715
挽巷
挽巷 2020-12-03 11:24

Is it possible, in any way, to pass comparison operators as variables to a function? I am looking at producing some convenience functions, for example (and I know this won\'

11条回答
  •  猫巷女王i
    2020-12-03 11:53

    How about this one?

    function num_cond ($var1, $op, $var2) {
    
        switch ($op) {
            case "=":  return $var1 == $var2;
            case "!=": return $var1 != $var2;
            case ">=": return $var1 >= $var2;
            case "<=": return $var1 <= $var2;
            case ">":  return $var1 >  $var2;
            case "<":  return $var1 <  $var2;
        default:       return true;
        }   
    }
    

    Test:

    $ops = array( "=", "!=", ">=", "<=", ">", "<" );
    $v1 = 1; $v2 = 5;
    
    foreach ($ops as $op) {
        if (num_cond($v1, $op, $v2)) echo "True  ($v1 $op $v2)\n"; else echo "False ($v1 $op $v2)\n";
    }
    

提交回复
热议问题