Как реализовать заполнение статических свойств в наследуемых классах из родительского? Что-то я запутался со static. Точнее с тем как с его помощью можно сделать синглтон.getDocComment(); static::$name = $reflect->getShortName(); echo "Получение Reflect данных для класса ".static::$name; //} } } echo ""; for($i=0;$i"; print_r($list); echo ""; }PHP Fiddle Как видно из кода, нет смысла инициализировать статические свойства для каждого обьекта, они должны быть инициализированы один раз для каждого класса
. В данном примере при создании экземпляра класса A или B вызывается конструктор класса Base, который инициализирует статические свойства $comment и $name один раз для каждого класса. Таким образом, при каждом создании экземпляра класса A и B, данные статические свойства будут использоваться без повторной инициализации.
Чтобы реализовать синглтон с использованием статического свойства, можно добавить соответствующий метод в класс, который будет создавать и возвращать единственный экземпляр класса. Например:
class Singleton { private static $instance = null; private function __construct() { // Приватный конструктор, чтобы предотвратить создание экземпляров класса извне } public static function getInstance() { if (self::$instance == null) { self::$instance = new Singleton(); } return self::$instance; } }
Теперь для получения единственного экземпляра класса Singleton можно использовать метод getInstance, который каждый раз будет возвращать один и тот же экземпляр.
. В данном примере при создании экземпляра класса A или B вызывается конструктор класса Base, который инициализирует статические свойства $comment и $name один раз для каждого класса. Таким образом, при каждом создании экземпляра класса A и B, данные статические свойства будут использоваться без повторной инициализации.
Чтобы реализовать синглтон с использованием статического свойства, можно добавить соответствующий метод в класс, который будет создавать и возвращать единственный экземпляр класса. Например:
class Singleton {private static $instance = null;
private function __construct() {
// Приватный конструктор, чтобы предотвратить создание экземпляров класса извне
}
public static function getInstance() {
if (self::$instance == null) {
self::$instance = new Singleton();
}
return self::$instance;
}
}
Теперь для получения единственного экземпляра класса Singleton можно использовать метод getInstance, который каждый раз будет возвращать один и тот же экземпляр.