有一个像
这样的字符串12345.find_user.find_last_name
我如何在charachter "."
中拆分并将其转换为函数调用:
find_last_name(find_user(12345));
等......可以是N-Elements(运行n函数)....我如何有效地执行此操作,性能方面呢?
编辑,这是基于回复的解决方案
感谢Gaurav的大力帮助。以下是基于您的完整解决方案:
我使用foreach
保护if(function_exists($function)){
以保护整个事件免受致命的php错误的影响,并添加了一个完整的示例:
$mystring = '12345.find_user.find_last_name';
convert_string_to_functions($mystring);
function convert_string_to_functions($mystring){
$functions = explode('.', $mystring);
$arg = array_shift($functions);
foreach($functions as $function){
if(function_exists($function)){
$arg = $function($arg);
} else {
echo 'Function '.$function.' Not found';
}
}
echo $arg;
}
function find_last_name($mystring=''){
return $mystring.' i am function find_last_name';
}
function find_user($mystring=''){
return $mystring.' i am function find_user';
}
答案 0 :(得分:2)
$string = '12345.find_user.find_last_name';
$functions = explode('.', $string);
$arg = array_shift($functions);
foreach($functions as $function){
$arg = $function($arg);
}
echo $arg;