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    百度已收录
正文到此结束

点击下方支持本站

点击支持下贵站吧
点击支持下贵站吧

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

微笑可爱憨笑鼓掌白眼发呆撇嘴色得意吐抠鼻可怜呲牙惊讶冷汗流泪大哭发怒抚摸傲慢惊恐鄙视疑问奸笑抓狂偷笑流汗擦汗晕委屈吓衰糗大了威武给力牛逼

评论信息框

火箭正在发射中...

已有6条吐槽

Zceo.Me

2016-12-24 08:39 河北省保定市电信
face
签到成功!签到时间:08:38:52 GMT+0800 (中国标准时间),每日打卡,生活更精彩哦~
 Windows 7 x64   Sogou Explorer

小陈

2017-01-13 19:47 湖南省张家界市电信
@Zceo.Me:face
 Windows 10 x64   Google Chrome 55.0.2883.87

小陈

2017-01-13 19:58 湖南省张家界市电信
@Zceo.Me:哟西,
 Windows 10 x64   Google Chrome 55.0.2883.87

小陈

2017-01-13 20:01 湖南省张家界市电信
@Zceo.Me:哟西。
 Windows 10 x64   Google Chrome 55.0.2883.87

小陈

2017-01-13 20:09 湖南省张家界市电信
@Zceo.Me:哟西。
 Windows 10 x64   Google Chrome 55.0.2883.87

小陈

2017-01-13 20:12 湖南省张家界市电信
@Zceo.Me:莎哇蒂卡
 Windows 10 x64   Google Chrome 55.0.2883.87