return 之前的处理程序数据
Handler data before return
这是我在 return 之前基于数据类型对自定义数据的简单实现。
如果我有很多类型,我想知道路由到预期处理程序函数的最佳解决方案是什么。我不想使用太多 switch
或 if-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()
以了解参数数组的使用。
这是我在 return 之前基于数据类型对自定义数据的简单实现。
如果我有很多类型,我想知道路由到预期处理程序函数的最佳解决方案是什么。我不想使用太多 switch
或 if-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()
以了解参数数组的使用。