在字符串中调用函数的正确语法是什么?

时间:2014-02-28 16:16:05

标签: php function

我一直收到错误,说明函数名必须在字符串中,或​​者它只是运行但不会在函数中打印任何字符串。我错过了什么?

<?php

$funName="{'$oneRun()'}";
echo "Hello You are running ".$funName."\n\n$";

function oneRun()
{ echo "Running Function One";return "one";}

function twoRun()
{ echo "Leave me alone, go bug Function One";return "two";}

?>

3 个答案:

答案 0 :(得分:3)

您的意思是callables还是variable functions

$funName = 'oneRun'; // save only name

echo "Hello You are running " . $funName() . "\n\n$";

答案 1 :(得分:0)

你在另一个回声中呼叫一个回声,这是无效的。

我猜是这样的:

<?php

$funName="{'$oneRun()'}";
echo "Hello You are running ";
oneRun();
echo "\n\n$";

function oneRun()
{ echo "Running Function One";return "one";}

function twoRun()
{ echo "Leave me alone, go bug Function One";return "two";}

?>

会做这个工作吗?

答案 2 :(得分:0)

我总是使用:

call_user_func($string_function_or_closure, ...);
call_user_func(array($object, 'Method'), ...);
call_user_func(array(StaticClass, 'Method'), ...);

或:

call_user_func_array($string_function_or_closure, array(...));
call_user_func_array(array($object, 'Method'), array(...));
call_user_func_array(array(StaticClass, 'Method'), array(...));

表示字符串函数。它比以下更明确:

$function();

它还可以在IDE中更好地显示它。