这是我在返回数据类型之前对自定义数据的简单实现。
如果我有很多类型,我想知道什么是路由到预期处理函数的最佳解决方案。我不想使用太多switch
或if-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我的英语不好。对不起。
答案 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()
是否使用了一系列参数。