2010-11-18 166 views
0

我有一个非常具体的问题:下面的代码可能在一行中?或者有没有一种方法可以做到这一点?动态函数调用PHP

$key = rand(1,100); 

$temp = 'GetObjects'.ucfirst($key).'Array'; 
$objects = $this->module->$temp(); 

像这样:

$objects = $this->module->'GetObjects'.ucfirst($key).'Array'(); 
+0

老实说,你有很多方法,你的'module'是1-100的作品?好神! – ircmaxell 2010-11-18 18:22:45

+0

不,$ key是一个例子,它有1-20个方法左右。 – Simon 2010-11-18 18:32:42

回答

4

也许

$objects = $this->module->{'GetObjects'.ucfirst($key).'Array'}(); 

$objects = call_user_func(array($this->module, 'GetObjects'.ucfirst($key).'Array')); 
+0

{/ *是正确的* /}。这个有一些文档吗? – Simon 2010-11-18 18:56:37