尝试使用变量PHP创建函数

时间:2012-02-13 18:25:03

标签: php

我正在尝试做这样的事情:

//function name

$str = 'bla()';


//make function with string as name
function $str{
      echo 'yey';
}

//Call the function by string name
bla();

3 个答案:

答案 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');
?>

Check here

并且您需要使用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