如何从 PHP 中的静态方法调用获取扩展类的类名?

Linda Hamilton
发布: 2024-10-31 21:29:29
原创
932 人浏览过

How to Get the Classname of an Extended Class from a Static Method Call in PHP?

从扩展 PHP 类中的静态调用检索类名

PHP 中的扩展类允许创建继承属性的子类及其父类的方法。但是,父类中的静态方法无法直接访问扩展类的类名。

问题:

调用静态方法时获取扩展类的类名来自该类。

例如:

<code class="php">class Action {
    function n() {/* something */}
}

class MyAction extends Action {/* some methods here */}</code>
登录后复制

调用 MyAction::n() 应返回“MyAction”。但是,Action 类中的 __CLASS__ 仅返回“Action”。

最新静态绑定 (PHP 5.3 ):

自 PHP 5.3 起,最新静态绑定可以解析目标用于在运行时调用静态方法的类。使用 get_used_class() 检索类名:

<code class="php">class Action {
    public static function n() {
        return get_called_class();
    }
}

class MyAction extends Action {

}

echo MyAction::n(); //displays MyAction</code>
登录后复制

或者:

如果静态方法不是静态的,请在方法中使用 get_class($this)获取类名。

以上是如何从 PHP 中的静态方法调用获取扩展类的类名?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!