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数据库连接类~~做成一个分页类!
Nov 25 PHP
php Memcache 中实现消息队列
Nov 24 PHP
php 函数使用方法与函数定义方法
May 09 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
Aug 05 PHP
php curl基本操作详解
Jul 23 PHP
php header函数的常用http头设置
Jun 25 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
9个比较实用的php代码片段
Mar 15 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
Jul 20 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 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/08/22 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
javascript 节点排序 2
2011/01/31 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
python基础梳理(一)(推荐)
2019/04/06 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
简单了解Python3里的一些新特性
2019/07/13 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
公司清洁工岗位职责
2013/12/14 职场文书
师范生自我鉴定
2014/03/20 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
离婚协议书怎么写
2015/01/26 职场文书
社区母亲节活动总结
2015/02/10 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS