2010-11-25 74 views
1

當方法名稱存儲在一個變量中時,我可以調用一個方法嗎?語法是什麼?假設我有下面的PHP代碼:我可以使用一個變量來調用一個方法嗎?

class MyClass { 
    public $default; 

    function index() { 
     /* call method named by $this->default */ 
    } 
    function method_1() {} 
    function method_2() {} 
    ... 
} 

index()默認情況下,所謂的上課的時候被初始化,如果沒有其他的方法進行具體調用。

如何從index()使用MyClass->$default屬性調用其中一種方法?也就是說,如果我通常會寫:

function index() { $this->method_1(); } 

我可以使用我的默認變量來調用正確的方法嗎?

+0

看看的http:// PHP。 net/manual/en/functions.variable-functions.php – SubniC 2010-11-25 11:00:16

回答

8

我可以使用一個變量來調用一個方法嗎?

是的,你可以。例如,一個物體裏面:

$method = "method_1"; 

if (method_exists($this, $method)) 
$this->{$method}(); 
+0

+1好點檢查之前是否存在呼叫:) – SubniC 2010-11-25 11:07:50

2

是的,你可以使用此語法:

$methodname = 'method_1'; 
$this->$methodname(); 
2

另外還有call_user_func解決方法:

call_user_func(array($this,$methodname), $arg...); 
相關問題