self::class和static::class的区别
在 PHP 里,在没有继承时候,你用self::class 和 static::class是一样的,都是获取当前类名。
但是如果用到了继承,并且这个方法写在了父类里,你想要分别获取当前父类名和未知的子类名,就要按照下面的方法进行获取。
在 PHP 类中,self指向的是当前方法存在的这个类,也就是父类。static指向的是最终那个子类。
<?php
class P{
public static function getParent(){
return self::class;
}
public static function getChild(){
return static::class;
}
}
class C extends P{
}
echo c::getParent() ; // 输出P
echo c::getChild(); //输出C
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: