У меня есть базовый класс с определенными магическими методами __call
и _callStatic
, так что вызовы необъявленных функций-членов обрабатываются.
Когда у Вас есть и нестатический, и статический, похоже, невозможно вызвать статический из производного класса, потому что статический оператор ::
не означает неявно static
при использовании с parent
или, как в этом случае, с именем базового класса. Это специальный синтаксис, описанный здесь: http://php.net/manual/pl/keyword.parent.php
Здесь я хочу вызвать производный класс __callStatic
который терпит неудачу, потому что вызов по умолчанию является нестатическим вызовом и обрабатывается __call
.
Как сделать явный статический вызов функции-члена базового класса?
someAction(); //outputs 'non-static call'
?>
Обратите внимание, что удаление нестатического метода __call
приводит к тому, что скрипт выводит «статический вызов», поскольку __callStatic
вызывается, когда __call
не объявлен.