返回前的处理程序数据

时间:2018-03-13 09:44:25

标签: php design-patterns structure

这是我在返回数据类型之前对自定义数据的简单实现。 如果我有很多类型,我想知道什么是路由到预期处理函数的最佳解决方案。我不想使用太多switchif-else。你能不能看一下这段代码并告诉我任何建议,还有其他办法在返回之前处理数据吗?谢谢

function A($data) {

}

function B($data) {
}

function bill($data) {
    return converter($data, $type)
}

function converter($data, $type) {
    if ($type == 'A')
    {
        return A($data);
    } else {
        return B($data);
    }
}
p / s我的英语不好。对不起。

1 个答案:

答案 0 :(得分:0)

您可以使用call_user_func()根据$type调用该函数:

function A($data) {
    return __function__ . " " . reset($data);
}

function B($data) {
    return __function__ . " " . end($data);
}

function converter($data, $type) {
    if (!function_exists($type)) return false ;
    return call_user_func($type, $data) ;
}

// Example:
echo converter(['data','test'], 'A'); // calls A()
echo converter(['data','test'], 'B'); // calls B()

输出:

A data
B test

您还可以查看call_user_func_array()是否使用了一系列参数。