请问在基类方法中如何访问派生类的静态变量?

class B {
public static $s = 'B';
public function m() {
echo self::$s; // 'B'
// $this 实际指向 D 的实例,如何访问到 D::$s ?
}
}

class D extends B {
public static $s = 'D';
}

$d = new D();
$d->m();

当然我知道 D 类可以把 function m 重定义一遍,可我想知道不重定义有没有办法?谢谢!

阅读 1.6k
1 个回答

善用代码格式

<?php

class B
{
    static $s = 'B';
    
    public function m() {
        echo static::$s;
    }
}

class D extends B
{
    static $s = 'D';
}
// output: D
(new D)->m();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题