Да, вы можете иметь вложенные статические классы в PHP, но это не красиво, и требует немного дополнительной работы. Синтаксис немного отличается от вашего.
Хитрость заключается в том, чтобы статически инициализировать внешний класс и создать статический экземпляр внутреннего класса.
Затем вы можете сделать одну из двух вещей, обе показаны ниже.
ссылается на статический экземпляр внутреннего класса (дочерний класс на самом деле является неправильным, потому что нет наследственных отношений.)
создать статический метод доступа для экземпляра внутреннего класса (это предпочтительно, потому что он допускает обнаружение).
class InnerClass {
public static function Member_function() {
echo __METHOD__;
}
}
class OuterClass {
public static $innerClass;
public static function InnerClass() {
return self::$innerClass;
}
public static function init() {
self::$innerClass = new InnerClass();
}
}
OuterClass::init();
OuterClass::$innerClass->Member_function();
OuterClass::InnerClass()->Member_function();