码迷,mamicode.com
首页 > Web开发 > 详细

PHP clone

时间:2016-07-07 19:38:29      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

PHP  clone

   
定义一个电视类
class Tv{
public $width=100;
public function setWidth($v){
$this->width = $v;
}
}
$a = new Tv();
$b = $a
$a->setWidth(200);
echo $b->width;        //结果是200
//原因,php对象的复制(赋值)是属于引用类型的
//要写解决上面的问题,操作变量$a的width使$b不受影响可以按下面的方法
 
$a = new Tv();
$b = clone $a;
$a->setWidth(200);
echo $b->width;        //结果是100
 
使用clone方法复制时,如果希望某些属性不被复制过去,可以使用__clone()方法
class Tv{
public $width=100;
public function setWidth($v){
$this->width = $v;
}
//被复制是调用,有clone关键词
public function __clone(){
$this->width = 0;
}
}
$a = new Tv();
$b = clone $a;
$a->setWidth(200);
echo $b->width;        //结果是0

PHP clone

标签:

原文地址:http://www.cnblogs.com/everest33Tong/p/5651039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!