您好,UncleToo欢迎您!  为了更好的浏览本站,请使用高版本浏览器
RSS  Tag     设为首页 | 加入收藏
 您所在的位置:首页 > PHP技术 > PHP基础

PHP中 new sel f和 new static 的区别

作者:未知  来源:转载  日期:2016-02-18 21:48:40
收藏  评论:( 0 )  阅读:404
abstract class DomainObject{
public static function create(){
return new self();
}
}
class User extends DomainObject{}
class Document extends DomainObject{}
var_dump(Document::create());

结果:Fatal error: Cannot instantiate abstract class DomainObject in......

       self 对当前类的静态引用,取决于定义当前方法所在的类。也就是说,这里的self被解析为定义create()的DomainObject,而不是解析为调用self的Document类。

abstract class DomainObject{
public static function create(){
return new static();//延迟静态绑定
}
}
class User extends DomainObject{}
class Document extends DomainObject{}
var_dump(Document::create());

结果:
class Document#1 (0) {
}



除非特别声明,本站所有PHP教程及其他教程/文章均为原创、翻译或网友投稿,版权均归UncleToo中文网所有, 转载请注明作者及出处。
原文网址:http://www.uncletoo.com/html/base/1166.html
读完这篇文章后,你是否有所收获? 分享是一种生活的信念!
  • 0
  • 0
我来说两句
更多>>网友评论