php面向对象全攻略 (三)特殊的引用“$this”的使用


Posted in PHP onSeptember 30, 2009

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教程孙仲岳主讲
Jan 07 PHP
利用PHP制作简单的内容采集器的原理分析
Oct 01 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
php中获得视频时间总长度的另一种方法
Sep 15 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
为百度UE编辑器上传图片添加水印功能
Apr 16 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
php+html5基于websocket实现聊天室的方法
Jul 17 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
完美解决thinkphp唯一索引重复时出错的问题
Mar 31 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 #PHP
php面向对象全攻略 (一) 面向对象基础知识
Sep 30 #PHP
PHP5 操作MySQL数据库基础代码
Sep 29 #PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 #PHP
php 生成饼图 三维饼图
Sep 28 #PHP
php 不同编码下的字符串长度区分
Sep 26 #PHP
php 应用程序安全防范技术研究
Sep 25 #PHP
You might like
域名查询代码公布
2006/10/09 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
js的隐含参数(arguments,callee,caller)使用方法
2014/01/28 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
webpack 处理CSS资源的实现
2019/09/27 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
Python3使用requests发闪存的方法
2016/05/11 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
jupyter notebook 重装教程
2020/04/16 Python
Python如何测试stdout输出
2020/08/10 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
《湘夫人》教学反思
2014/02/21 职场文书
法人代表授权委托书
2014/04/08 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
外国人来华邀请函
2015/01/31 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers