php clone办法是指PHP工具克隆,当咱们把整型$a赋给某个变量$b后,$b就是$a的“复制品”,但两者其实不相关,$b的值扭转其实不会影响到$a,而$a的值扭转一样也没有会影响到$b。
保举:《PHP视频教程》
PHP工具克隆:__clone()办法
工具的克隆:__clone()办法
当咱们把整型$a赋给某个变量$b后,$b就是$a的“复制品”,但两者其实不相关,$b的值扭转其实不会影响到$a,$a的值扭转一样也没有会影响到$b。关于数组也是如斯,但关于工具则没有同,当把工具的实例$a赋值给某个变量$b之后,$b并非$a的“复制品”,而是对$a的援用,$b的值扭转会影响到$a,$a的值扭转一样也会影响到$b.
例如:
<?php class Cat{ public $name; function __construct($name){ echo 'Cat类启动'; $this->name = $name; } function __destruct(){ echo 'Cat类完结'; } } $a = new Cat("默默");//实例化类,挪用无参数的结构办法 //$c被销毁时主动挪用析构办法 $b=$a; echo "扭转以前:<br>"; echo "a->name:".$a->name."<br>"; echo "b->name:".$b->name."<br>"; $a->name="琳琳"; echo "扭转之后:<br>"; echo "a->name:".$a->name."<br>"; echo "b->name:".$b->name."<br>"; ?>
运转后果:
Cat类启动扭转以前:
a->name:默默
b->name:默默
扭转之后:
a->name:琳琳
b->name:琳琳
然而不少时分咱们需求一个工具的正本,为不只仅是对工具的援用。这时候咱们能够应用clone要害字,但要留意假如被“克隆”的类属性中的援用,则该援用被保存了,也就是说,正本中的援用与原类中的援用都指向一样的内存.
例如:
<?php class Cat{ public $name; function __construct($name){ echo 'Cat类启动'; $this->name = $name; } function __destruct(){ echo 'Cat类完结'; } } $a = new Cat("默默");//实例化类,挪用无参数的结构办法 //$c被销毁时主动挪用析构办法 $b=clone $a; echo "扭转以前:<br>"; echo "a->name:".$a->name."<br>"; echo "b->name:".$b->name."<br>"; $a->name="琳琳"; echo "扭转之后:<br>"; echo "a->name:".$a->name."<br>"; echo "b->name:".$b->name."<br>"; ?>
运转后果:
Cat类启动扭转以前:
a->name:默默
b->name:默默
扭转之后:
a->name:琳琳
b->name:默默
Cat类完结Cat类完结
此类中的属性$name被付与了援用,因而再用clone要害字复制时,“复制品”中的name与“原装”的$name指向了一样的变量
以上就是php clone办法是甚么的具体内容,更多请存眷资源魔其它相干文章!
标签: php php教程 clone() php故障解决 php使用问题
抱歉,评论功能暂时关闭!