Имея строку типа
12345.find_user.find_last_name
как я могу разделить на символ "."
и преобразовать его в вызов функции:
find_last_name(find_user(12345));
и т. Д. .... может быть из N-элементов (n-функций для запуска) .... как мне сделать это эффективно, также с точки зрения производительности?
Правка, вот решение, основанное на ваших ответах
спасибо Гаураву за вашу большую помощь. Вот мое полное решение, основанное на вашем:
Я защитил 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';
}