Один из нетрадиционных подходов, который мне пришёл в голову, это , если вы не генерируете весь код через какой-то супер-ультра-автономный ИИ, который пишет себя , есть большие шансы, что функции, которые вы хотите, "динамически" "вызов, уже определены в вашей кодовой базе. Так почему бы просто не проверить строку и не позорить ifelse
танец, чтобы призвать ... Вы поймете мою точку зрения.
например.
if($functionName == 'foo'){
foo();
} else if($functionName == 'bar'){
bar();
}
Даже switch-case
можно использовать, если вам не нравится мягкий вкус ifelse
лестницы.
Я понимаю, что есть случаи, когда ", динамически вызывающий функцию ", будет абсолютной необходимостью ( Как некоторая рекурсивная логика, которая модифицирует себя ). Но большинство повседневных тривиальных сценариев использования можно просто избежать.
Это отсеивает большую неопределенность в вашем приложении, давая вам возможность выполнить резервную функцию, если строка не соответствует ни одному из определений доступных функций. ИМХО.