$root = new FileSystemNode("~", true);
$desktop = new FileSystemNode("Desktop", true);
$root->children[$desktop->name] = &$desktop;
...
$q = &$root->children["Desktop"];
unset($q);
我正在做这个奇怪的事情只是为了理解这段代码后面发生了什么。
真实场景:在创建和连接对象(前三行)之后,我可能想要将“桌面”分配给代码中的某个变量,之后我可能想删除它。但是,不幸的是,它根本没有被删除。我仍然可以访问$ root-> children [“Desktop”]。
有什么建议吗?
答案 0 :(得分:0)
从PHP 5开始,对象始终是引用。&
运算符对您的示例没有任何影响。
更新:(因为您在评论中提出了问题):
如果您需要对象的独立副本,请使用clone
:
$q = clone $root->children["Desktop"];