大家好
PHP有個複製物件的方式
例如以下這樣
$objectB = clone $objectA;
但是大家一定會納悶
怎麼會用到這樣的複製方式呢?
直接 "等於" 不就好了嗎?
所以我來說說我遇到的情況
<?php
class aa
{
static $val;//靜態參數
}
class vv//物件
{
var $h = 1;
}
aa::$val = new vv;
$bb = aa::$val;
$bb->h = 2;
echo 'aa::$val = '.aa::$val->h.'<br>';
echo '$bb = '.$bb->h.'<br>';
?>
大家會發現
$bb 的物件變成了aa中的物件
但是我的目標是取得aa中的 vv物件的值
且不會影響到原本aa物件中的 vv物件的值
但是在以上例子中
$bb 物件明顯的等於aa物件中的 vv物件
所以這時候
就需要使用
$objectB = clone $objectA;
<?php
class aa
{
static $val;//靜態參數
}
class vv//物件
{
var $h = 1;
}
aa::$val = new vv;
$bb = aa::$val;
$bb = clone aa::$val;
$bb->h = 2;
echo 'aa::$val = '.aa::$val->h.'<br>';
echo '$bb = '.$bb->h.'<br>';
?>
這樣就會正常了
希望對大家有幫助
感恩!

留言板
歡迎留下建議與分享!希望一起交流!感恩!