爲什麼這有效?我的意思是,訪問私有變量。在PHP中使用靜態方法訪問私有文件
class Test { private $q = 0; public function __construct() { $this->q = 1; } public static function EpicConstruct() { $test = new self(); $test->q = 2; return $test; } } $test = Test::EpicConstruct();
爲什麼這有效?我的意思是,訪問私有變量。在PHP中使用靜態方法訪問私有文件
class Test { private $q = 0; public function __construct() { $this->q = 1; } public static function EpicConstruct() { $test = new self(); $test->q = 2; return $test; } } $test = Test::EpicConstruct();
因爲您正在以正確的上下文訪問成員,即:定義私有成員的類。
所以我可以用這種方式處理這個類的任何對象?我想我明白裝飾者模式現在如何運作。謝謝! – UnstableFractal 2013-03-19 21:11:24
@smsteel只要是同一個班級:是的。使用裝飾器模式,不是那麼多:作爲裝飾器是擴展類的一個類,或者更典型地擴展/實現一個公共的超類型(一些基類或接口)。前一種修飾器只能訪問至少受到「保護」的成員,而後者只能訪問該類的「公共」成員(或超類型的「受保護」成員)。 – 2013-03-19 21:16:05
因爲您是從同一個班級訪問它的。 – Maerlyn 2013-03-19 21:07:22
http://www.php.net/manual/en/language.oop5.visibility.php – 2013-03-19 21:08:02
想想它就像男人和女人的更衣室。同一班級的對象可以看到對方的私處。 – 2013-03-19 21:55:13