码迷,mamicode.com
首页 > Web开发 > 详细

php -- new self() 和 new static

时间:2017-07-27 16:37:08      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:extends   class   echo   static   继承   extend   sel   blog   public   

看一段摘自网上的代码

class A {
  public static function get_self() {
    return new self();
  }
 
  public static function get_static() {
    return new static();
  }
}
 
class B extends A {}
 
echo get_class(B::get_self()); // A
echo get_class(B::get_static()); // B
echo get_class(A::get_static()); // A

 

通俗点讲就是:

new self();   在哪个类里面执行的该代码,返回的就是哪个类的对象。如果该代码只写在父类中,即使子类继承自父类,返回的依然是父类的对象。

new static();  哪个类调用的它,返回的就是哪个类的的对象。

 

php -- new self() 和 new static

标签:extends   class   echo   static   继承   extend   sel   blog   public   

原文地址:http://www.cnblogs.com/hf8051/p/7245509.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!