解读php中clone方法的适用场合

在php语言中,对象之前相互传递是传其引用,如下:
<?php
class stu {
	public $age;
}

$s1 = new stu();
$s1->age = 2;

$s2 = $s1;
$s2->age = 3;

echo $s1->age;  //output 3
?>
从上面可以看出,$s1,$s2 指向是相同的,修改其中一个的属性值,另一个对应的属性值也在跟着变。普通的变量则是直接重新拷贝一份给其传递,如果对象之间想要实现这种结果,可以的,这就是clone的作用了。如下:
<?php
class stu {
	public $age;
}

$s1 = new stu();
$s1->age = 2;

$s2 = clone $s1;
$s2->age = 3;

echo $s1->age;  //output  2
?>
综上所述,如果想复制一个对象,那就用 clone(克隆)吧,普通的 等号(=) 赋值不是真正的复制,而是把指针指到同一块区域了。

标签: clone

26
Mar 2012
AUTHOR WiFeng
CATEGORY Web
COMMENTS 1 Comment

仅有一条评论 »

  1. WiFeng WiFeng

    哈哈

添加新评论 »

   点击刷新验证码