PHP字符串/函数:将字符串转换为函数链

时间:2012-01-17 10:05:37

标签: php string function

有一个像

这样的字符串
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';

}

1 个答案:

答案 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;