php静态延迟绑定
  • 内容
  • 评论
  • 相关

今天学习了到了静态延迟绑定!只是接触了,具体的实际应用还不会,只作简单的介绍!做一下记录!

abstract class DomainObject{
	public static function create()
	{
		return new self();//注意下这里的变化
	}
}
class User extends DomainObject{
}
class Document extends DomainObject{
}
Document::create();
var_dump(Document::create());

如果你这样的话,就会报出一个致命错误!

Fatal error: Cannot instantiate abstract class DomainObject in 

D:104middleclassoopjiekou.php on line 5

改成这样就可以了!

abstract class DomainObject{
	public static function create()
	{
		return new static();//注意下这里的变化
	}
}
class User extends DomainObject{
}
class Document extends DomainObject{
}
Document::create();
var_dump(Document::create());

其实self这个关键字是对上下文的解析,所以当你运行上面一个例子的时候,这个self关键词实际上就是DomainObject类,所以为了解决这个问题php5.3引入了static关键字,他虽然与self类似,但是他代表的是被调用的类而不是包含类!

当Document::create()时,return new static();此时调用的便是Dodument类,所以var_dump出来时便是Document类了!

点赞
X
赞助一下:
    支付宝    微信    QQ红包

打开支付宝扫一扫
php静态延迟绑定
本文标签:
版权声明:若无特殊注明,本文皆为“懒人的小窝”原创,转载请保留文章出处。
本文链接:http://suppore.cn/316.html   百度已收录

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论

6条评论
  1. avatar

    Zceo.Me Lv.2    河北省保定市 电信    回复

    表情 签到成功!签到时间:08:38:52 GMT+0800 (中国标准时间),每日打卡,生活更精彩哦~

    1. 头像

      小陈    湖南省张家界市 电信    回复

      回复了Zceo.Me:表情

    2. 头像

      小陈    湖南省张家界市 电信    回复

      回复了Zceo.Me:哟西,

    3. 头像

      小陈    湖南省张家界市 电信    回复

      回复了Zceo.Me:哟西。

    4. 头像

      小陈    湖南省张家界市 电信    回复

      回复了Zceo.Me:哟西。

    5. 头像

      小陈    湖南省张家界市 电信    回复

      回复了Zceo.Me:莎哇蒂卡

00:00 / 00:00
顺序播放