if语句的函数包装器

时间:2019-03-07 18:44:34

标签: php

我处于需要大量登录代码的情况。得到了一个函数包装器,该包装器调用了所需的函数并记录了相关数据。但是我感兴趣的一件事是if语句的包装。或者可以让我将语句结果和其他杂项数据的记录设置在一个地方而不是几十个地方。

沿途的事情

$result = iff([isset($param1) && $param2 == 1]);

function iff($params) {

    if($params)
        $res = true;
    else
        $res = false;

    $log->save($miscData, $res);

    return $res;

}

或者其他可以让我在某个地方设置抢劫物品的东西。寻找一些想法。

1 个答案:

答案 0 :(得分:1)

也许您正在寻找 func_get_args 方法。

http://php.net/manual/en/function.func-get-args.php

因此您的函数(和示例执行)将如下所示:

  

$ result = iff(isset($ param1),$ param2 == 1);

function iff($params) {

    $numargs = func_num_args();
    $arg_list = func_get_args();
    $res = true;

    for ($i = 0; $i < $numargs; $i++) {
        if ($arg_list[$i] === false) {
            $res = false;
            break;
        }
    }

    $log->save($miscData, $res);

    return $res;
}

请注意,使用此方法允许您将任意数量的参数传递给函数,每个参数都是一个布尔值。