$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"];