2012-08-29 184 views
-2
$scripts[0] = 'Say Hello'; 
$scripts[1] = 'Dont Say Hello'; 
$scripts[2] = 'Welcome'; 

$function_name = str_replace(' ', '_', $scripts[0]); //Name of the function "Say_Hello" 

echo $function_name('Jolly'); // Should echo "Hello Jolly" 

我有一个庞大的数组,其中包含与函数关联的名称。在正常情况下,如果我们要调用函数Say_Hello(),我们这样做:Say_Hello('Jolly')。但在上面的例子中,函数的名字存储在一个变量中,所以我怎么称呼它呢?来自变量的呼叫功能

感谢

+4

你可以调用它就像你已经试图打电话给它。什么部分不起作用?在发布这个问题之前,你是否真的试图自己写这个? – meagar

+0

*正好是你所拥有的*:'$ funcname();'的作品。 –

+0

检出http://php.net/manual/en/function.call-user-func.php - – Kuf

回答

1

退房PHP函数call_user_func

call_user_func - 呼叫由第一个参数给出的回调

例如:

<?php 
error_reporting(E_ALL); 
function increment(&$var) 
{ 
    $var++; 
} 

$a = 0; 
call_user_func('increment', $a); 
echo $a."\n"; 

call_user_func_array('increment', array(&$a)); // You can use this instead before PHP 5.3 
echo $a."\n"; 
?>