PHPnewself和newstatic的区别

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......

创新互联是一家集网站设计、做网站、网站页面设计、网站优化SEO优化为一体的专业网络公司,已为成都等多地近百家企业提供网站建设服务。追求良好的浏览体验,以探求精品塑造与理念升华,设计最适合用户的网站页面。 合作只是第一步,服务才是根本,我们始终坚持讲诚信,负责任的原则,为您进行细心、贴心、认真的服务,与众多客户在蓬勃发展的市场环境中,互促共生。

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) {

}


网页题目:PHPnewself和newstatic的区别
标题路径:http://hxwzsj.com/article/iheocd.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 上市集团网站建设 四川成都网站建设 四川成都网站设计 定制网站建设 网站设计 成都网站建设 成都网站建设 成都网站建设 成都网站建设 移动网站建设 定制网站设计 成都网站制作 成都网站设计 营销网站建设 企业网站建设公司 成都网站建设 营销网站建设 成都网站制作 网站设计制作报价 企业手机网站建设 重庆网站制作 成都网站建设