值"的形式来访问,成员属于哪个对象,$this引用就代表哪个对象,并且只能在对象的成员方法中使用。 我们来看一下下面的例子,$this在做了什么? "/>

专注于WEB技术的IT博客

php面向对象编程之$this关键字

时间:2013-03-14分类: php浏览:4652
分享到:

在前面我们知道,在对象外部访问对象成员属性和方法,使用对象的引用来完成。而在对象内部中,成员方法访问自己对象中的其它成员属性或者成员方法,要使用特殊的对象引用"$this->值"的形式来访问,成员属于哪个对象,$this引用就代表哪个对象,并且只能在对象的成员方法中使用。


我们来看一下下面的例子,$this在做了什么?

<?php
class Person{
            public $name;            
            public $age;            
            public $sex;            
            
        public function say(){    
               echo $this->name."说,"."他一边".$this->run()."一边".$this->eat("apple")."<br/>";
                           
        }       
                
        public function eat($name){     
            return "吃".$name;           
        }
        public function run(){      
            return "走路";           
        }       
    }
            
            
$Person1= new Person();
$Person2= new Person();
$Person1->name="张三";
$Person2->name="李四";
            
$Person1->say();
$Person2->say();
?>

上面程序运行结果:

张三说,他一边走路一边吃apple

李四说,他一边走路一边吃apple


我们来看一下上面的代码中$this做了什么:

1、访问对象内部的成员,如$this->name

2、访问对象的其它方法,如在say()方法内部访问了其之外的$this->run()和$this->eat("apple")方法。


另外还有一点值得注意的是,局部变量和成员属性可以同名,但作用范围和访问方式不一样,如在eat()方法体内的$name相当于局部变量,其作用范围只限于eat方法内部,而Person的成员属性声明部分的 $name,则相当于全局变量,可以其它方法中使用$this->name的形式访问。




猜你喜欢
php面向对象之__autoload()
php面向对象之__call处理错误调用
php面向对象之__toString()
PHP面向对象之const常量修饰符
php面向对象之final的应用
php面向对象之克隆对象
PHP面向对象之对象和引用
php面向对象之类的静态成员
php面向对象之子类中重载父类的方法
php面向对象的访问类型控制
标签 : php 面向对象
除非注明,本文首发网志博客,欢迎转载!转载请注明本文地址:http://w3note.com/web/89.html,谢谢。
  • 评论
  • 赞助本站