任何人有想法,如何以及如何銷燬/更改許多地方引用的php對象?未設置顯然會破壞只有一個引用,有時手動跟蹤所有引用不是一個選項。有任何想法嗎?也許我在思考中缺少某些東西?有沒有辦法訪問給定對象的所有引用?
5
A
回答
3
尼斯回答馬克,但我不知道如何做到這一點的工作:
第一個圖:
<?php
$obj = "foo";
$a = $obj;
$b = $obj;
$c = $obj;
$c = NULL;
unset($c);
var_dump($a, $b, $c);
結果:
string(3) "foo"
string(3) "foo"
NULL
第二個圖:
<?php
$obj = "foo";
$wrapper =& $obj;
$a = $wrapper;
$b = $wrapper;
$c = $wrapper;
$c = NULL;
unset($c);
var_dump($a, $b, $c);
結果:
string(3) "foo"
string(3) "foo"
NULL
正確方法:
<?php
$obj = "foo";
$a =& $obj;
$b =& $obj;
$c =& $obj;
$c = NULL;
var_dump($a, $b, $c);
個
結果:
NULL
NULL
NULL
說明:
你需要引用您的變量 $ A,$ B,$ C到 $ obj中的內存地址,此當您將$ c設置爲 NULL時,這會將實際內存地址 設置爲NULL,而不僅僅是參考。
6
不,但您可以使用額外的間接級別。目前,你有這樣的:
a b c a b (unset)
\ | / \ |
\ | / --> \ |
object object
相反,你可以這樣做:
a b c a b c
\ | / \ | /
\ | / --> \ | /
wrapper (unset)
|
|
object
+0
不錯的視覺答案。 – webbiedave 2010-05-23 22:16:15
相關問題
- 1. 有沒有辦法訪問所有PHP變量的列表?
- 2. 有沒有辦法讓一個窗口的所有BindingExpression對象?
- 3. 有沒有辦法引用導致異常的對象?
- 4. 有沒有辦法引用自定義類對象的一個屬性/方法?
- 5. 有沒有辦法在保存之前引用Rails ActiveRecord對象?
- 6. 有沒有辦法訪問一個向量內的索引
- 7. 有沒有辦法確定java中有多大的對象?
- 8. 有沒有辦法給createElement對象分配唯一的ID?
- 9. 有沒有辦法選擇包含特定值的所有JSON對象?
- 10. 有沒有辦法醃製FTP對象?
- 11. 有沒有辦法在valueForKeyPath語句中指定特定的對象索引?
- 12. 有沒有辦法在C#中查看給定類實例的所有方法?
- 13. 有沒有辦法訪問函數的預綁定值?
- 14. 有沒有辦法在Groovy中擁有可調用的對象?
- 15. 有沒有辦法在JavaScript中打印對象的所有方法?
- 16. 有沒有辦法解碼tf.Summary protobuf對象並在TensorFlow中訪問它的值?
- 17. 有沒有辦法將線程的命運與對象綁定?
- 18. 有沒有什麼辦法從子元素訪問父Dom對象?
- 19. 有沒有辦法使用GetRows()方法訪問整個行?
- 20. 有沒有辦法給「窗口」對象添加打字稿定義
- 21. 有沒有辦法在實例化之前對類對象進行引用?
- 22. jQuery.remove() - 刪除對象後,有沒有辦法讓對象返回?
- 23. 有沒有辦法綁定數組子對象?
- 24. 有沒有辦法檢測對象是否被鎖定?
- 25. 有沒有辦法自動引用所有通過Zend中的模型/對象的輸入?
- 26. 沒有訪問所有方法(或引用XAML中的方法失敗)?
- 27. 如何訪問NSDictionary的所有對象?
- 28. 有沒有辦法創建一個沒有訪問日誌的SVN用戶?
- 29. 有沒有辦法改變這個關鍵字引用的對象?
- 30. 有沒有辦法找出什麼是在.NET中引用我的對象?
儘管實際上,在設置對象的引用時,使用引用來設置它並不總是更容易。 – andho 2011-05-26 09:51:39