PHP面向对象编程中的魔术方法__clone()
来源:互联网 发布:php开源项目 编辑:程序博客网 时间:2024/06/06 08:34
<?php
/*__clone()魔术方法:
1.当使用clone关键字clone对象时自动调用;
2.使用__clone()魔术方法是为了让新克隆的对象进行初始化重新赋值;
3.这个方法内部的$this代表的是新克隆的对象(副本);
*/
class person{
public $name;
public $age;
public $address;
function __construct($name,$age,$address){
$this->name=$name;
$this->age=$age;
$this->address=$address;
}
function say(){
echo "我的名字叫:".$this->name.",我的年纪是:".$this->age.",我来自:".$this->address."<br>";
}
function __destruct(){
echo "##############byebye<br>";
}
function __clone(){
$this->name="liuyi";
$this->age=18;
$this->address="jingshan";
}
}
$p=new person("刘仁","23","湖北");
//使用对象赋值的形式,析构方法只会调用一次;说明p2只是p的一个对象引用,也可以说是一个别名,对象是同一个而已;
$p2=$p;
$p->say();
//使用clone关键字则会单独在堆内存中赋值一份对象的属性和方法,所以析构方法会调用两次;
$p3=clone $p;
$p3->say();
?>
/*__clone()魔术方法:
1.当使用clone关键字clone对象时自动调用;
2.使用__clone()魔术方法是为了让新克隆的对象进行初始化重新赋值;
3.这个方法内部的$this代表的是新克隆的对象(副本);
*/
class person{
public $name;
public $age;
public $address;
function __construct($name,$age,$address){
$this->name=$name;
$this->age=$age;
$this->address=$address;
}
function say(){
echo "我的名字叫:".$this->name.",我的年纪是:".$this->age.",我来自:".$this->address."<br>";
}
function __destruct(){
echo "##############byebye<br>";
}
function __clone(){
$this->name="liuyi";
$this->age=18;
$this->address="jingshan";
}
}
$p=new person("刘仁","23","湖北");
//使用对象赋值的形式,析构方法只会调用一次;说明p2只是p的一个对象引用,也可以说是一个别名,对象是同一个而已;
$p2=$p;
$p->say();
//使用clone关键字则会单独在堆内存中赋值一份对象的属性和方法,所以析构方法会调用两次;
$p3=clone $p;
$p3->say();
?>
阅读全文
0 0
- PHP面向对象编程中的魔术方法__clone()
- PHP面向对象_对象克隆clone和魔术方法__clone()
- 面向对象 魔术方法 __clone() __toString() __call() __autoload()
- php之clone 复制对象以及__clone魔术方法
- PHP面向对象中的魔术方法
- PHP中的面向对象魔术方法大全
- php面向对象魔术方法
- PHP面向对象-----魔术方法
- 面向对象中的魔术方法
- PHP对象克隆:__clone()方法
- Php面向对象--使用__clone()克隆对象
- php面向对象中的魔术函数
- php面向对象中的魔术常量
- PHP面向对象魔术方法复习
- Php面向对象魔术方法总结
- PHP之面向对象的魔术方法
- php面向对象笔记5 魔术方法
- PHP面向对象:封装--魔术方法__set()
- AFNetworking数据请求(深度封装)
- MySql-Set字段类型
- 稳定
- POJ.1797 Heavy Transportation (Dijkstra变形)
- mac上安装hadoop
- PHP面向对象编程中的魔术方法__clone()
- bzoj3626[LNOI2014]LCA 树链剖分
- tensorflow学习笔记(2)——基础(二)——张量和会话
- 二叉查找树
- Hadoop好友推荐系统-推荐结果查询
- 2017.7.10 C组总结
- 牛腩总结
- JAVA 静态变量(方法)用法
- foreach遍历list删除元素一定会报错?