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 22 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
PHP 线程安全与非线程安全版本的区别深入解析
Aug 06 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
Apr 08 PHP
js代码实现微博导航栏
Jul 30 PHP
PHP实现QQ登录实例代码
Jan 14 PHP
详解PHP中mb_strpos的使用
Feb 04 PHP
PHP APP微信提现接口代码
Sep 30 PHP
laravel-admin select框默认选中的方法
Oct 03 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
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
jquery移动listbox的值原理及代码
2013/05/03 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
完美解决js传递参数中加号和&amp;号自动改变的方法
2016/10/11 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
Python之py2exe打包工具详解
2017/06/14 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
python中tab键是什么意思
2020/06/18 Python
公司清洁工岗位职责
2013/12/14 职场文书
给学校建议书范文
2014/05/13 职场文书
单位接收函格式
2015/01/30 职场文书
小学语文教学随笔
2015/08/14 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
Python借助with语句实现代码段只执行有限次
2022/03/23 Python