編輯:如果我在某個對象上應用某些業務邏輯,然後我需要克隆它以在其他某個過程中橫向移動。重新應用對象的新實例或克隆現有對象的業務邏輯(它有很高的機會得到不同的結果)會更有效率嗎?但是如果我做$ a = $ b,通過引用傳遞的對象是不夠的。未設置通過引用PHP
讓我們這個例子:
$a = new test();
$b = $a;
$b->setSomeProp('test');
$a->setSomeProp('failed');
echo $b->getSomeProp(); //returns 'failed'
和
$a = new test();
$b = unserialize(serialize($a));
$b->setSomeProp('test');
$a->setSomeProp('failed');
echo $b->getSomeProp(); //returns 'test'
有沒有更好的辦法來替代引用?
對象始終是PHP中的引用。總是!請參閱我記錄的http://nativephp.com/archives/4教程。你不需要引用來處理PHP 5+中的對象(甚至不記得這是什麼時候添加的)。所以你不能取代價值。您只需將引用變量別名更改爲別的。不是原來的。 – CodeAngry
你的第二個剪輯[打印失敗](http://codepad.org/TxCyCtxa);儘管目前還不清楚你想用這個完成什麼。 – NullUserException
@NullUserException我試圖連載一個var。這段代碼只是一個例子,我在問題中指出解決方案必須應用於對象。 – Udan