求高人指点下.
this->method与parent::method有什么区别吗?
两个都是在调用里面的方法或属性.但它们这样写.有什么区别吗?

解决方案 »

  1.   

    ->调用的是动态方法,就是要实例化才能使用的方法,$obj = new Class(); $obj->method()
    ::调用的是静态方法,不用实例化,直接类名::方法名
      

  2.   

    this->代表的是虚拟实例,也就是说,他对应的是这个类实例后的对像,
    parent是访问控制符中的父类,还有self
    在类内,parent指的是访问父类的一个静态方法或成员,他访问的对像是以类本身算起,同样,静态方法和成员不需要实例类也可使用
    class a{
       static $a = "b";
    }
    class b{
       var $b = "c";
       function __construct()
       {
           echo parent::$a;
       }
       function ba(){
           echo $this->b;
       }
       static function bc(){
           echo $this->b;
       }
    }
    b::bc();//bc
    $bb = new b
    echo $bb->ba;//bc