设计知识点
类与对象->后期静态绑定
出现的问题
A 类为父类
里面有一个方法为调用当前类的 $name 属性
当 B 类继承了 A类时
但是输出仍然是 A (父类) 的 属性?
<?php
class A
{
private static $name = "A类";
public static function test()
{
echo self::$name;
}
}
class B extends A
{
private static $name = "B类";
}
B::test();
解决办法
官方讲解
static代表的是调用的那个类。而self代表的是方法所在的类
<?php
class A
{
private static $name = "A类";
public static function test()
{
echo static::$name;
}
}
class B extends A
{
protected static $name = "B类";
}
B::test();