PHP 尝试删除对象的引用


PHP Trying to Delete Reference of Objects

$root = new FileSystemNode("~", true);
$desktop = new FileSystemNode("Desktop", true);
$root->children[$desktop->name] = &$desktop;
...
$q = &$root->children["Desktop"];
unset($q);

我正在做这个奇怪的事情,只是为了了解这段代码背后发生了什么。

真实场景:在创建和连接对象(前 3 行(后,我可能想将"Desktop"分配给代码中的某个变量,之后我可能想要删除它。但是,不幸的是,它根本没有被删除。我仍然可以访问$root->儿童["桌面"]。

有什么建议吗?

对象始终是 PHP 5 的引用。&运算符在您的示例中没有影响。


更新:(因为您在评论中的问题(:

如果需要对象的独立副本,请使用clone

$q = clone $root->children["Desktop"];