ncbiphpstorm git clonee 后面的phpu630是什么意思

PHP对象克隆clone用法示例
作者:ligbee
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了PHP对象克隆clone用法,结合实例形式分析了php浅克隆与深克隆的相关概念、特点与实现方法,需要的朋友可以参考下
本文实例讲述了PHP对象克隆clone用法。分享给大家供大家参考,具体如下:
浅克隆:只是克隆对象中的非对象非资源数据,即对象中属性存储的是对象类型,则会出现克隆不完全
public $val = 10;
public $val = 20;
public $b;
public function __construct(){
$this-&b = new B();
$obj_a = new A();
$obj_b = clone $obj_a;
$obj_a-&val = 30;
$obj_a-&b-&val = 40;
var_dump($obj_a);
echo '&br&';
var_dump($obj_b);
运行结果如下:
object(A)[1]
public 'val' =& int 30
public 'b' =&
object(B)[2]
public 'val' =& int 40
object(A)[3]
public 'val' =& int 20
public 'b' =&
object(B)[2]
public 'val' =& int 40
深克隆:一个对象的所有属性数据都彻底的复制,需要使用魔术方法__clone(),并在里面实现深度克隆
public $val = 10;
public $val = 20;
public $b;
public function __construct(){
$this-&b = new B();
public function __clone(){
$this-&b = clone $this-&b;
$obj_a = new A();
$obj_b = clone $obj_a;
$obj_a-&val = 30;
$obj_a-&b-&val = 40;
var_dump($obj_a);
echo '&br&';
var_dump($obj_b);
运行结果如下:
object(A)[1]
public 'val' =& int 30
public 'b' =&
object(B)[2]
public 'val' =& int 40
object(A)[3]
public 'val' =& int 20
public 'b' =&
object(B)[4]
public 'val' =& int 10
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具PHP单例模式&防止克隆方法
第一种方法:设置魔术方法__clone();访问权限为private
第二种方法:若__clone()为公用方法,则在函数中加上自定义错误,如trigger_error('Clone&is&not&allow!',E_USER_ERROR);
单例模式的三个要点:
需要一个保存类的唯一实例的静态成员变量:
private&static&$_instance;&&&
(2).&构造函数和克隆函数必须声明为私有的,防止外部程序new类从而失去单例模式的意义:
private&function&__construct()&&&
&&&&$this-&_db&=&pg_connect('xxxx');&&
private&function&__clone()&&
}//覆盖__clone()方法,禁止克隆&&
必须提供一个访问这个实例的公共的静态方法(通常为getInstance方法),从而返回唯一实例的一个引用&
public&static&function&getInstance()&&&&
&&&&if(!&(self::$_instance&instanceof&self)&)&&&
&&&&&&&&self::$_instance&=&new&self();&&&&
&&&&return&self::$_instance;&&&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 php clone 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信