我有一個叫做Foo
的類,它帶有一個構造函數,我希望它的一個變量是子類的名稱。擴展父類的靜態類的自動初始化
例子:
class Foo {
protected static $name;
protected static $something;
public function __construct($something) {
self::$something = $something;
self::$name = strtolower(__CLASS__);
}
static public function hello() {
echo self::$name;
}
}
class Bar extends Foo {}
new Foo('lazy');
Bar::hello();
結果將是永遠foo()
,因爲構造函數只能由new Foo()
調用。
那麼,這是什麼方式?在調用靜態方法時是否有一種神奇的方法?對不好的解釋抱歉。
https://eval.in/569930 – splash58
謝謝,但這解決不了。我需要將它存儲在一個變量中,而不是每次都調用該函數。你好需要只是一個變量的查看者,而不是一個虛假的二傳手。 – Grork
*我需要將它存儲在一個變量中* - 如果您想要調用構造函數,將會如何? – splash58