从扩展 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中文网其他相关文章!