2010-11-18 15 views
0

Ich habe eine sehr spezifische Frage: ist der folgende Code in einer Zeile möglich? Oder gibt es einen besseren Weg, das Gleiche zu tun?Dynamischer Funktionsaufruf PHP

$key = rand(1,100); 

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

So:

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

Ehrlich gesagt, Sie haben, dass viele Methoden auf Ihrem 'module' dass 1-100 funktioniert? Guter Gott! – ircmaxell

+0

Nein, $ key ist ein Beispiel, es hat 1-20 Methoden oder so. – Simon

Antwort

4

Vielleicht

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

oder

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

{/ * ist korrekt * /}. Gibt es eine Dokumentation zu diesem Thema? – Simon