Hello guys, first post here. I am really desparate about how references (do not) work in PHP. Here's a code snippet: [code] var $data; var $_children; var $_uniqueNames; function &add(&$child) { $name = $child->data->name; if (array_key_exists($name, $this->_uniqueNames)) { return $this->_uniqueNames[$name]; } $this->_children[] =& $child; $this->_uniqueNames[$name] =& $child; // we register the name $true = TRUE; return $true; } [/code] This is part of a simple Node class prepared to build trees. A Node remembers the names of its children and refuses to add a new child with a name already registered. Everything seems to work except the return value in case there is an attempt to add a child with an already registered name -- my client code always gets NULL whatever I do! I would appreciate any idea of why is that and how can I fix it, thanks in advance! Yassen