首页 > 解决方案 > if 语句的函数包装器

问题描述

我处于需要进行大量登录代码的情况。有一个函数包装器,它调用所需的函数并在此过程中记录相关数据。但我感兴趣的一件事是 if 语句的包装。或者允许我在一个地方而不是几十个地方设置语句结果和其他杂项数据的日志记录。

沿途的东西

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

function iff($params) {

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

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

    return $res;

}

或者其他可以让我在一个地方设置某种搜索的东西。寻找一些想法。

标签: php

解决方案


也许您正在寻找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;
}

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


推荐阅读