Как вызвать функцию от строки, сохраненной в переменной?

Я должен смочь вызвать функцию, но имя функции хранится в переменной, действительно ли это возможно? например:

function foo ()
{
  //code here
}

function bar ()
{
  //code here
}

$functionName = "foo";
// i need to call the function based on what is $functionName
271
задан Script47 8 September 2019 в 22:55
поделиться

5 ответов

444
ответ дан 23 November 2019 в 02:16
поделиться

Я не знаю, почему вы должны это использовать, это звучит не очень хорошо для меня, но если есть только небольшое количество функций, вы можете использовать конструкцию if / elseif. Я не знаю, возможно ли прямое решение.

что-то вроде $ foo = "бар"; $ test = "foo"; echo $$ test;

должен вернуть bar, вы можете попробовать, но я не думаю, что это сработает для функций

-9
ответ дан 23 November 2019 в 02:16
поделиться

Да, возможно:

function foo($msg) {
    echo $msg."<br />";
}
$var1 = "foo";
$var1("testing 1,2,3");

Источник: http://www.onlamp.com/pub/a/php/2001/05/17/php_foundations.html? page = 2

17
ответ дан 23 November 2019 в 02:16
поделиться

Для полноты картины вы также можете использовать eval () :

$functionName = "foo()";
eval($functionName);

Однако call_user_func () является правильным способом.

10
ответ дан 23 November 2019 в 02:16
поделиться

Используйте функцию call_user_func.

2
ответ дан 23 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: