任何人有想法,如何以及如何销毁/更改许多地方引用的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