Привет всем! Подскажите по сабжу, стал разбираться и насколько я понял конструкция new static(); создает объект для конкретного класса, а не содержащего. Но не совсем въехал как это можно потестить на примерах и для чего это может пригодиться. Логику не совсем улавливаю. Можете пояснить. Код (Text): class A { // some stuff.... public static function getInstance() { return new static(); } } class B extends A { public static function test() { print "Test\n"; } } $obj = B::getInstance(); $obj::test(); var_dump($obj);
Это удобно, когда создается абстрактный класс для реализации Синглтона, и все классы, которые должны быть синглтонами - наследуются от него.