我有一些問題。 我想從另一個類中調用static
類的方法。 動態創建類名稱和方法。
這不是真的很難做到像:
$class = 'className';
$method = 'method';
$data = $class::$method();
,但我想這樣做這樣
class abc {
static public function action() {
//some code
}
}
class xyz {
protected $method = 'action';
protected $class = 'abc';
public function test(){
$data = $this->class::$this->method();
}
}
如果我不分配$this->class
它不工作變量$class
變量,以及$this->method
變量爲$method
變量。 什麼問題?
'$ this'總是在當前目標點 - 該方法正在執行的那個。你不能使用'$ this'並魔法般地將它變成其他對象的「this」。即使你可以做'$ this - > $ class-> action()','$ class'只是一個字符串。它不是對象,也不指向對象的實例,因此即使該對象的名稱是字符串,也不能用於在對象中執行方法。你可以使用它的唯一方法就是調用它所代表的類的一個** STATIC **方法。 –