PHP 父类静态方法中调用子类静态方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 父类静态方法中调用子类静态方法相关的知识,希望对你有一定的参考价值。

get_called_class() 获取调用该方法的类,如果是在子类中调用父类方法,则返回子类的类名。

或者用static关键字: static::class

如果有多个子类,要在父类中调用子类方法,下面代码可实现:

class parent{
    abstract protected static function getFunc($action);
   public static function call($action){
     //调用子类静态方法,唯一的方式
        $func = static::getFunc($action);
            if(!$func){
            exit();
        }
        try {
            $reflectionMethod = new ReflectionMethod(get_called_class(), $func);
        }catch (ReflectionException $e) {
            exit();
        }
        return $reflectionMethod->invoke(null/*,$paras*/);
    }
}

class son extends parent{
    public static function getFunc($action){
         return "hello";
    }
}


本文出自 “流媒体服务器技术研究” 博客,请务必保留此出处http://livestreaming.blog.51cto.com/3135568/1980407

以上是关于PHP 父类静态方法中调用子类静态方法的主要内容,如果未能解决你的问题,请参考以下文章

java中私有的属性、静态成员可以被子类继承吗?

php父类中访问子类的静态属性

java基础 静态 static 问在多态中,子类静态方法覆盖父类静态方法时,父类引用调用的是哪个方法?

请教一下C#中父类静态构造函数在子类中为啥不会和子类的静态构造函数一起执行

有继承关系的对象执行顺序,包括静态变量,静态代码块,普通变量,普通代码块,继承方法.

笔试部分技术1