大家好
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>'; ?>
這樣就會正常了
希望對大家有幫助
感恩!
留言板
歡迎留下建議與分享!希望一起交流!感恩!