特殊的引用”$this“的使用
来源:互联网 发布:指纹对比算法 编辑:程序博客网 时间:2024/05/16 13:05
现在我们知道了如何访问对象中的成员,是通过”对象->成员”的方式访问的,这是在对象的外部去访问对象中成员的形式, 那么如果我想在对象的内部,让对象里的方法访问本对象的属性, 或是对象中的方法去调用本对象的其它方法这时我们怎么办?因为对象里面的所有的成员都要用对象来调用,包括对象的内部成员之间的调用,所以在PHP里面给 我提供了一个本对象的引用$this, 每个对象里面都有一个对象的引用$this来代表这个对象,完成对象内部成员的调用, this的本意就是“这个”的意思, 上面的实例里面,我们实例化三个实例对象$P1、 $P2、 $P3,这三个对象里面各自存在一个$this分别代表对象$p1、$p2、$p3 。
通过上图我们可以看到,$this就是对象内部代表这个对象的引用,在对象内部和调用本对象的成员和对象外部调用对象的成员所使用的方式是一样的。
$this->属性: $this->name; $this->age; $this->sex;
$this->方法 :$this->say(); $this->run();
修改一下上面的实例,让每个人都说出自己的名字,性别和年龄:
01
<?php
02
class
Person
03
{
04
// 下面是人的成员属性
05
var
$name
;
//人的名子
06
var
$sex
;
//人的性别
07
var
$age
;
//人的年龄
08
09
// 下面是人的成员方法
10
function
say()
// 这个人可以说话的方法
11
{
12
echo
"我的名子叫:"
.
$this
->name .
" 性别:"
.
$this
->sex .
" 我的年龄是:"
.
$this
->age;
13
}
14
15
function
run()
// 这个人可以走路的方法
16
{
17
echo
"这个人在走路"
;
18
}
19
}
20
21
$p1
=
new
Person();
// 创建实例对象$p1
22
$p2
=
new
Person();
// 创建实例对象$p2
23
$p3
=
new
Person();
// 创建实例对象$p3
24
25
// 下面三行是给$p1对象属性赋值
26
$p1
->name =
"张三"
;
27
$p1
->sex =
"男"
;
28
$p1
->age = 20;
29
30
// 下面访问$p1对象中的说话方法
31
$p1
->say();
32
33
// 下面三行是给$p2对象属性赋值
34
$p2
->name =
"李四"
;
35
$p2
->sex =
"女"
;
36
$p2
->age = 30;
37
38
// 下面访问$p2对象中的说话方法
39
$p2
->say();
40
41
// 下面三行是给$p3对象属性赋值
42
$p3
->name =
"王五"
;
43
$p3
->sex =
"男"
;
44
$p3
->age = 40;
45
46
// 下面访问$p3对象中的说话方法
47
$p3
->say();
48
?>
输出结果为:
我的名子叫:张三 性别:男 我的年龄是:20我的名子叫:李四 性别:女 我的年龄是:30我的名子叫:王五 性别:男 我的年龄是:40
分析一下这个方法:
1
function
say()
// 这个人可以说话的方法
2
{
3
echo
"我的名子叫:"
.
$this
->name .
" 性别:"
.
$this
->sex .
" 我的年龄是:"
.
$this
->age;
4
}
在$p1、$p2和$p3这三个对象中都有say()这个方法,$this分别代表这三个对象, 调用相应的属性,打印出属性的值,这就是在对象内部访问对象属性的方式, 如果相在say()这个方里调用run()这个方法也是可以的,在say()这个方法中使用$this->run()的方式来完成调用。
0 0
- 特殊引用$this的使用
- 特殊的引用”$this“的使用
- 特殊的引用“$this”的使用
- this的特殊用法
- 内部特殊引用$this
- 对象的this引用
- this对象的引用
- 对象的this引用
- 类声明、类实例化对象、对象中成员的访问、特殊对象的引用$this
- C++一个特殊的引用
- 对象的默认引用:this
- java 对象this的引用
- this-对象的默认引用
- Java对象的this引用
- java 对象的this引用
- 深入理解Javascript的特殊变量this
- javascript函数的特殊对象this
- string是特殊的引用类型,特殊在何处??
- Android新特性之CardView的简单使用
- Spring缓存注解@Cache,@CachePut , @CacheEvict,@CacheConfig使用
- CentOS使用EPEL YUM源
- android你可能要用到的自定义View分享
- winform chart 控件之滚动条的放大与缩小功能
- 特殊的引用”$this“的使用
- 广度优先搜索-抓住那头牛(算法基础 第8周)
- Jimoshi_用easyui做Struts2+Hibenate4学生实体类(Student)的增删改
- 字符串当引号遇到美元
- 《HTML5移动开发指南》——笔记4(离线应用)
- 6-1认识CSS样式
- 翻转课堂心得
- MyEclipse添加Maven插件
- 构造方法__construct()与析构方法__destruct()