Что-то я запутался со static. Точнее с тем как с его помощью можно сделать синглтон.
<?php
/** Описание обьекта B */
class B extends Base {}
/** Описание обьекта А */
class A extends Base {}
class Base {
public static $comment;
public static $name;
public function __construct(){
//Нет смысла выполнять этот код для каждого экземпляра класса
//так как комментарий и имя статичны для класса
//if(is_null(static::$name)){
$reflect = new ReflectionClass(static::class);
static::$comment = $reflect->getDocComment();
static::$name = $reflect->getShortName();
echo "<br>Получение Reflect данных для класса ".static::$name;
//}
}
}
echo "<pre>";
for($i=0;$i<3;$i++){
$list = [];
foreach(['A','B'] as $className){
$class = new $className();
$list[$class::$name] = $class::$comment;
}
echo "<br>";
print_r($list);
echo "<hr>";
}
PHP Fiddle
Как видно из кода, нет смысла инициализировать статические свойства для каждого обьекта, они должны быть инициализированы один раз для каждого класса