php面向对象编程之$this关键字
程序员文章站
2022-04-14 15:29:43
...
在前面我们知道,在对象外部访问对象成员属性和方法,使用对象的引用来完成。而在对象内部中,成员方法访问自己对象中的其它成员属性或者成员方法,要使用特殊的对象引用"$this->值"的形式来访问,成员属于哪个对象,$this引用就代表哪个对象,并且只能在对象的成员方法中使用。
我们来看一下下面的例子,$this在做了什么?
name."说,"."他一边".$this->run()."一边".$this->eat("apple")."
"; } 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面向对象之旅:深入理解static变量与方法
-
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
-
php面向对象的方法重载两种版本比较
-
PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】
-
PHP学习记录之面向对象(Object-oriented programming,OOP)基础【接口、抽象类、静态方法等】
-
php面向对象中的魔术方法中文说明
-
Java面向对象编程之类的继承详解
-
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
-
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
-
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式