PHP 父类方法如何访问子类属性?

PHP 父类方法如何访问子类属性?

A 类为父类
里面有一个方法为调用当前类的 $name 属性
当 B 类继承了 A类时
但是输出仍然是 A (父类) 的 属性?

clipboard.png

<?php
class A
{
    private static $name = "A类";
    
    public static function test()
    {
        echo self::$name;
    }
}

class B extends A
{
     private static $name = "B类";
}

B::test();
?>
阅读 6.6k
2 个回答

static:“延迟静态绑定”了解一下

class A
{
    private static $name = "A类";
    
    public static function test()
    {
        echo static::$name;
    }
}

class B extends A
{
     protected static $name = "B类";
}

B::test();
public static function test()
{
    echo static::$name;
}

static代表的是调用的那个类。而self代表的是方法所在的类

你也可以 echo get_called_class(); 看看

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题