我正在尝试做这样的事情:
//function name
$str = 'bla()';
//make function with string as name
function $str{
echo 'yey';
}
//Call the function by string name
bla();
答案 0 :(得分:4)
您可以使用eval()
来尝试此任务。但我确实不建议:
// name of the function
$str = 'bla';
// php code you want to execute inside
$inside = '';
eval("
function $str() { $inside }
");
或者您也可以使用匿名函数:
$name = function() {
// code
};
// execution
$name();
如果您只是尝试调用动态函数,请使用call_user_func()
,如下所示:
// name of the function
$str = 'bla';
// paramters to the function
$param = array();
call_user_func($str, $param);
但我认为你做错了什么。这种“黑客”是应用程序架构糟糕的标志。
<强>参考强>
答案 1 :(得分:3)
我会建议你,不要这样使用。但如果你还想这样做,
<?php
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
?>
并且您需要使用PHP 5.3
答案 2 :(得分:-2)
每当函数完成时,它都会返回一个值。如果没有设置返回值,则返回0。
如果您希望能够按照要求执行此操作,则可以执行以下操作:
function blah($string="Blah"){
return($string);
}
echo blah("Banana"); //echo's Banana
echo blah(); //echo's Blah
$str = blah("Apple"); //Sets $str to Apple