php子类调用静态方法吗,PHP 父类静态方法中调用子类静态方法

本文介绍了PHP中如何在父类中动态调用子类的静态方法。使用`get_called_class()`函数可以获取到调用方法的类名,如果是子类调用则返回子类名。同时,`static::class`关键字也可以达到类似效果。通过示例代码展示了在父类中调用并执行子类静态方法的方法,这对于多层继承结构的代码设计非常有用。
摘要由CSDN通过智能技术生成

标签: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";

}

}

标签:php

原文:http://livestreaming.blog.51cto.com/3135568/1980407

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值