php面向对象全攻略 (三)特殊的引用“$this”的使用
2015-01-24信息快讯网
现在我们知道了如何访问对象中的成员,是通过“对象->成员”的方式访问的,这是在对象的外部去访问对象中成员的形式,那么如果我想在对象的内部,让对象里的方法访问本对象的属性,或是对象中的方法去调用本对象的其它方法这时我们怎么办?
7.特殊的引用“$this”的使用现在我们知道了如何访问对象中的成员,是通过“对象->成员”的方式访问的,这是在对
象的外部去访问对象中成员的形式,那么如果我想在对象的内部,让对象里的方法访问本对
象的属性,或是对象中的方法去调用本对象的其它方法这时我们怎么办?因为对象里面的所
有的成员都要用对象来调用,包括对象的内部成员之间的调用,所以在PHP 里面给我提供了
一个本对象的引用$this,每个对象里面都有一个对象的引用$this 来代表这个对象,完成对象
内部成员的调用,this 的本意就是“这个”的意思,上面的实例里面,我们实例化三个实例
对象$P1、$P2、$P3,这三个对象里面各自存在一个$this 分别代表对象$p1、$p2、$p3。
通过上图我们可以看到,$this 就是对象内部代表这个对象的引用,在对象内部和调用本
对象的成员和对象外部调用对象的成员所使用的方式是一样的。
$this->属性$this->name; $this->age; $this->sex;
$this->方法$this->say(); $this->run();
修改一下上面的实例,让每个人都说出自己的名字,性别和年龄:
代码片段
<?php class Person{ //下面是人的成员属性 var $name; //人的名字 var $sex; //人的性别 var $age; //人的年龄 //下面是人的成员方法 function say(){//这个人可以说话的方法 echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>"; } function run(){ //这个人可以走路的方法 echo "这个人在走路"; } } $p1=new Person(); //创建实例对象$p1 $p2=new Person(); //创建实例对象$p2 $p3=new Person(); //创建实例对象$p3 //下面三行是给$p1对象属性赋值 $p1->name="张三"; $p1->sex="男"; $p1->age=20; //下面访问$p1对象中的说话方法 $p1->say(); //下面三行是给$p2对象属性赋值 $p2->name="李四"; $p2->sex="女"; $p2->age=30; //下面访问$p2对象中的说话方法 $p2->say(); //下面三行是给$p3对象属性赋值 $p3->name="王五"; $p3->sex="男"; $p3->age=40; //下面访问$p3对象中的说话方法 $p3->say(); ?>
输出结果
我的名字叫:张三性别:男我的年龄是:20
我的名字叫:李四性别:女我的年龄是:30
我的名字叫:王五性别:男我的年龄是:40
分析一下这个方法:
代码片段
function say(){ //这个人可以说话的方法
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:".$this->age."<br>";
}
在$p1、$p2 和$p3 这三个对象中都有say()这个方法,$this 分别代表这三个对象,调用相应的属性,打印出属性的值,这就是在对象内部访问对象属性的方式,如果相在say()这个方
法里调用run()这个方法也是可以的,在say()这个方法中使用$this->run()的方式来完成调用。
深入解析PHP的引用计数机制
谨慎使用PHP的引用原因分析
PHP中Date()时间日期函数的使用方法小结
php中显示数组与对象的实现代码
zend api扩展的php对象的autoload工具
php 面向对象的一个例子
使用NetBeans + Xdebug调试PHP程序的方法
PHP随机数生成代码与使用实例分析
PHP学习 变量使用总结
Zend Studio (eclipse)使用速度优化方法
javascript,php获取函数参数对象的代码
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
PHP编程过程中需要了解的this,self,parent的区别
php中$this->含义分析
php self,$this,const,static,->的使用
php面向对象全攻略 (四)构造方法与析构方法
php面向对象全攻略 (二) 实例化对象 使用对象成员
php面向对象全攻略 (一) 面向对象基础知识
使用php来实现网络服务
php empty函数 使用说明
PHP 高级课程笔记 面向对象
PHP 程序员也要学会使用“异常”
php ignore_user_abort与register_shutdown_function 使用方法
PHP程序61条面向对象分析设计的经验小结
PHP 面向对象改进后的一点说明第1/2页
PHP5中的this,self和parent关键字详解教程