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 不同编码下的字符串长度区分
Sep 26 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
Mar 15 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
深入php-fpm的两种进程管理模式详解
Jun 03 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
php针对cookie操作的队列操作类实例
Dec 10 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
php实现连接access数据库并转txt写入的方法
Feb 08 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
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
PHP导入导出Excel代码
2015/07/07 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
10款实用的PHP开源工具
2015/10/23 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
Python中的字符串替换操作示例
2016/06/27 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
Python函数参数分类原理详解
2020/05/28 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
人力资源管理专业学生自我评价
2013/11/20 职场文书
医学生自我评价
2014/01/27 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
考试诚信承诺书
2014/05/23 职场文书
Python访问Redis的详细操作
2021/06/26 Python
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL