本文共 556 字,大约阅读时间需要 1 分钟。
self - 就是这个类,是代码段里面的这个类。
static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,从堆内存中提取出来,访问的是当前实例化的那个类,那么 static 代表的就是那个类。class A { public function create1() { return new self(); } public function create2() { return new static(); }}class B extends A { }$objA = new A();echo get_class($objA->create1());echo get_class($objA->create2());echo "";$obj = new B();echo get_class($obj->create1());echo get_class($obj->create2());显示结果如下:AAAB
从上述代码就可以清晰的看出,new self 实例化的是代码区块所在的类,
new static 实例化的是在当前类(如果是子类,实例化的就是子类,即使方法是写在父类中);转载地址:http://busib.baihongyu.com/