$root = new FileSystemNode("~", true);
$desktop = new FileSystemNode("Desktop", true);
$root->children[$desktop->name] = &$desktop;
...
$q = &$root->children["Desktop"];
unset($q);
このコードの背後で何が起こっているのかを理解するためだけに、この奇妙なことをしています。
実際のシナリオ: (最初の 3 行で) オブジェクトを作成して接続した後、「デスクトップ」をコード内のどこかの変数に割り当てたいと思うかもしれません。その後、それを削除したいと思うかもしれません。しかし、残念ながら、それはまったく削除されません。$root->children["Desktop"] には引き続きアクセスできます。
なにか提案を?