Я предполагаю, что этот вопрос больше ориентирован на язык-geeks. У меня есть следующий класс:
<?php
abstract class ScopeFactory
{
public static function doStuff()
{
}
}
Теперь я могу вызвать эту функцию, например:
ScopeFactory::doStuff()
И это работает счастливо. Я всегда кодировал под впечатлением, что классы abstract
не могут использоваться напрямую - и они должны быть реализованы конкретным классом, чтобы быть вызываемым.
Мое впечатление от static
заключается в том, что он не требует, чтобы экземпляр вызывался.
Может кто-нибудь объяснить мне, почему это законно, и если это так? Мне любопытно узнать более тонкие детали.