Jump to content

Archived

This topic is now archived and is closed to further replies.

yassen

[SOLVED] Desparation: References do not work as expected

Recommended Posts

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

Share this post


Link to post
Share on other sites
My worst fears are justified:

Not only newbies fail to understand how references work in PHP, nobody really knows  :-\

Share this post


Link to post
Share on other sites
You would have 2 use the function twice~~
and if you are trying to print the value please dont forget like noobs that you need to use echo if you use return, it just does not echo it.

Share this post


Link to post
Share on other sites
Thanks, RockingGroudon!
I finally got it -- it was my mistake, erroneous code in a wrapper function that substituted the return value for something else. Thanks again!

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.