<?php
class A
{
public static function foo()
{
// some action
}
public static function __callStatic($method, $args)
{
self::foo();
static::$method($args);
}
}
class B extends A
{
public static function bar(){}
}
我搜索PHP公共静态函数处理程序,我尝试__callStatic()
但它仅使用私有和受保护的方法调用。
magic 方法(如 __call
和 __callStatic
Docs(仅用于类中不存在的方法。当发生正常方法调用时,不会触发它们。因此,没有办法通过公共方法实现这一目标。
但是,您可以将这些方法设为私有/受保护,并使用 call_user_func
或 call_user_func_array
在魔术方法中调用它们。当然,这些函数的返回值也应该通过魔术方法返回。