我試圖做這樣的事情:試圖建立一個函數的變量PHP
//function name
$str = 'bla()';
//make function with string as name
function $str{
echo 'yey';
}
//Call the function by string name
bla();
我試圖做這樣的事情:試圖建立一個函數的變量PHP
//function name
$str = 'bla()';
//make function with string as name
function $str{
echo 'yey';
}
//Call the function by string name
bla();
你可以使用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);
但我認爲你做錯了什麼。這種「黑客」是惡意應用程序體系結構的標誌。
參考
這是爲wordpress動態包含模塊。我沒有找到另一種方式來做到這一點。 add_submenu_page()需要一個包含其中內容的函數。所以每個模塊都需要一個新的功能。在它包含頁面的功能中。 我仍然希望自己不會造成「糟糕的應用程序結構」,因爲這不是我通常編程的方式 – 2012-02-14 00:11:39
每當一個函數完成,它返回一個值。如果未設置返回值,則返回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
我會建議你,而不是像這樣使用。但是,如果你仍然想這樣做,
<?php
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
?>
你需要使用PHP 5.3
它已經沒有用了,真的。 – Griwes 2012-02-13 18:26:35
你將需要的是http://www.php.net/manual/en/function.eval.php,但是如果你不需要的話不要使用它。 – 2012-02-13 18:28:55
你爲什麼要做這樣愚蠢的事情? – Richard 2012-02-13 18:30:24