return 之前的处理程序数据

Handler data before return

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

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我的英语不好。抱歉。

根据$type:

可以用call_user_func()调用函数
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() 以了解参数数组的使用。