当前位置: 首页 > 后端技术 > PHP

newself()和newstatic()的区别

时间:2023-03-29 23:52:21 PHP

1、newstatic()是php5.3版本引入的新特性。2、不管是newstatic还是newself(),都是new一个对象。3、这两种方法产生的对象有什么区别?说白了就是new出来的是同一个类的realcolumn还是不同类的realcolumn?为了探究上面的问题,我们先写一段简单的代码}publicfunctiongetNewCaller(){returnnewstatic();}}$f=新父亲();var_dump(get_class($f->getNewFather()));//父亲var_dump(get_class($f->getNewCaller()));//Father1.这里不管是getNewFather还是getNewCaller,都是返回的Father。本专栏2。这里好像newself()和newstatic()没有区别。让我们去classSun1extendsFather{}$sun1=newSun1();var_dump($sun1->getNewFather());//object(Father)#4(0){}var_dump($sun1->getNewCaller());//object(Sun1)#4(0){}这里我们发现getNewFather返回的是Father的实际列,而getNewCaller返回的是调用者的实际列。现在我们了解了newself()和newstatic之间的区别它们之间的区别只能体现在继承上。如果没有继承,那么两者就没有区别了。那么newself()返回的真实列不会改变。无论谁调用它,它都会返回一个类的真实列,而newstatic则由调用者决定。

最新推荐
猜你喜欢