请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHPthis、self与static的区别

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
/**
* 父类P中 获取子类C的类名
*/
class P
{
public static function getParent()
{
return self::class;
}

public static function getChild()
{
return static::class;
}

public function getClassName(){
echo __CLASS__; // 获取当前的类名
}

public function getThis(){
var_dump($this);
}
}

class C extends P
{

}

echo C::getParent(), PHP_EOL; // P
echo C::getChild(), PHP_EOL; // C
echo (new C())->getClassName(), PHP_EOL; // P
echo (new C())->getThis(), PHP_EOL; // C
/*
总结:
* 1.在 PHP 里,在没有继承时候,你用self::class 和 static::class是一样的,都是获取当前类名。
* 2.如果用到了继承,并且这个方法写在了父类里,你想要分别获取当前父类名和未知的子类名,就要按照下面的方法进行获取。
* 在 PHP 类中,self指向的是当前方法存在的这个类,也就是父类。static指向的是最终那个子类
* 3.this也有static的效果,只不过区别一个是非静态一个是静态
*/

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
彻底认清PHP单例模式的本质发布时间:2022-07-12
下一篇:
mac下home-brew安装及php,nginx环境安装及配置发布时间:2022-07-12
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap