php中的clone对象
来源:互联网 发布:淘宝网改地址 编辑:程序博客网 时间:2024/06/06 01:33
有的时候我们需要在一个项目里面,使用两个或多个一样的对象,如果你使用“new”关键字重新创建对象的话,再赋值上相同的属性,这样做比较烦琐而且也容易出错,所以要根据一个对象完全克隆出一个一模一样的对象,是非常有必要的,而且克隆以后,两个对象互不干扰。
在PHP4中我们使用“clone”这个关键字克隆对象;
01
<?
02
class
Person
03
{
04
//下面是人的成员属性
05
var
$name
;
//人的名子
06
var
$sex
;
//人的性别
07
var
$age
;
//人的年龄
08
09
//定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值
10
function
__construct(
$name
=
""
,
$sex
=
""
,
$age
=
""
) {
11
$this
->name=
$name
;
12
$this
->sex=
$sex
;
13
$this
->age=
$age
;
14
}
15
16
//这个人可以说话的方法,说出自己的属性
17
function
say() {
18
echo
"我的名子叫:"
.
$this
->name .
" 性别:"
.
$this
->sex .
" 我的年龄是:"
.
$this
->age .
"<br>"
;
19
}
20
}
21
22
$p1
=
new
Person(
"张三"
,
"男"
, 20);
23
24
//使用“clone”克隆新对象p2,和p1对象具有相同的属性和方法。
25
$p2
=clone
$p1
;
26
$p2
->say();
27
?>
PHP4定义了一个特殊的方法名“__clone()”方法,是在对象克隆时自动调用的方法,用“__clone()”方法将建立一个与原对象拥有相同属 性和方法的对象,如果想在克隆后改变原对象的内容,需要在__clone()中重写原本的属性和方法, “__clone()”方法可以没有参数,它自 动包含$this和$that两个指针,$this指向复本,而$that指向原本;
01
<?
02
class
Person
03
{
04
//下面是人的成员属性
05
var
$name
;
//人的名子
06
var
$sex
;
//人的性别
07
var
$age
;
//人的年龄
08
09
//定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值
10
function
__construct(
$name
=
""
,
$sex
=
""
,
$age
=
""
) {
11
$this
->name=
$name
;
12
$this
->sex=
$sex
;
13
$this
->age=
$age
;
14
}
15
16
//这个人可以说话的方法, 说出自己的属性
17
function
say() {
18
echo
"我的名子叫:"
.
$this
->name .
" 性别:"
.
$this
->sex .
" 我的年龄是:"
.
$this
->age .
"<br>"
;
19
}
20
21
//对象克隆时自动调用的方法, 如果想在克隆后改变原对象的内容,需要在__clone()中重写原本的属性和方法
22
function
__clone() {
23
24
//$this指的复本p2, 而$that是指向原本p1,这样就在本方法里,改变了复本的属性。
25
$this
->name =
"我是假的 $that->name"
;
26
$this
->age = 30;
27
}
28
29
}
30
31
$p1
=
new
Person(
"张三"
,
"男"
, 20);
32
$p2
= clone
$p1
;
33
$p1
->say();
34
$p2
->say();
35
?>
上例输出:
我的名子叫:张三 性别:男 我的年龄是:20
我的名子叫:我是假的张三 性别:男 我的年龄是:30
0 0
- php中的clone对象
- php 对象克隆 clone
- PHP克隆对象clone
- php 对象clone
- php 对象复制(克隆)clone()
- php clone()中的地址传递(&)
- 关于PHP中的对象(类的实例)的复制、clone(克隆)
- php面向对象Clone与序列化
- PHP面向对象——clone关键字
- PHP面向对象——clone关键字
- PHP使用clone关键字复制对象
- php类和对象: clone 克隆
- java中的参数传递与对象Clone
- JavaScript中的对象复制(Object Clone)
- php array_push()函数在clone()中的应用
- 关于PHP中的引用以及clone详解
- 对象clone
- PHP 对象的克隆(clone)与引用(=)的区别
- MySQL-python “error: command 'gcc' failed with exit status 1”错误
- php实现post和get
- RPG黑暗之光(4)添加第一个NPC、NGUI实现任务发布
- RPG黑暗之光(5)NGUI实现背包系统初步
- php中static和const
- php中的clone对象
- php中的接口和抽象类
- php对象的序列化(串行化)用作 写入文件或者网络传输
- Unity Game Programming AI(1)人工智能导论
- Rotate Image
- php中的die()和exit()区别
- php重定向网页
- php中的const和define区别(补充)
- 初来乍到!