php clone方法是什么-PHP问题

资源魔 21 0

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使用问题

抱歉,评论功能暂时关闭!