Как реализовать заполнение статических свойств в наследуемых классах из родительского? Что-то я запутался со static. Точнее с тем как с его помощью можно сделать синглтон.getDocComment();
static::$name = $reflect->getShortName();
echo "Получение Reflect данных для класса ".static::$name;
//}
}
}
echo "";
for($i=0;$i<3;$i++){
$list = [];

foreach(['A','B'] as $className){
$class = new $className();
$list[$class::$name] = $class::$comment;
}

echo "";
print_r($list);
echo "";
}PHP Fiddle
Как видно из кода, нет смысла инициализировать статические свойства для каждого обьекта, они должны быть инициализированы один раз для каждого класса

21 Авг 2019 в 06:59
205 +1
0
Ответы
1

. В данном примере при создании экземпляра класса 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, который каждый раз будет возвращать один и тот же экземпляр.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир