深入理解php $this 变量是一个到主叫对象的引用

手册上说:当一个方法在类定义内部被调用时,有一个可用的伪变量 $this 。 $this  是一个到主叫对象的引用

出处:http://be2.php.net/manual/zh/language.oop5.basic.php

以前一直以为$this是指向当前类名new出的对象,然而,$this 是一个到主叫对象的引用告诉我们,谁调用了方法,方法中的$this就指向谁。

例如:

 class Father{
     public $name = 'Father';
     protected $age = 35;
     private $hobby = 'read';
     public function __construct(){
         echo $this->name."\n";
         echo $this->age."\n";
         echo $this->hobby."\n";
        $this->read();
     }
     public function read(){
         echo 'father'."\n";
     }
 }
class Son extends Father{
    public $name = 'Son';
    protected $age = 15;
    private $hobby = 'code';
    public function __construct(){
       parent::__construct();
    }
    public function read(){
        echo 'son';
    }
}
 $Son = new Son();
输出 Son    15   read   son


此时$Son是主叫对象,所以,一些可以重写的属性,方法,都会指向类Son ,而私有的属性,方法还是调用$this所属类的。



阅读更多
版权声明:本文为博主原创文章,转载请注明出处,以便当内容有变动时别人能找到原文,避免误导大家。 https://blog.csdn.net/wang740209668/article/details/71519067
个人分类: php
上一篇java语言基础(46)——内部类概述及使用
下一篇深入理解php多态及代码演示
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭