yassen Posted August 14, 2006 Share Posted August 14, 2006 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 Quote Link to comment https://forums.phpfreaks.com/topic/17514-solved-desparation-references-do-not-work-as-expected/ Share on other sites More sharing options...
yassen Posted August 14, 2006 Author Share Posted August 14, 2006 My worst fears are justified:Not only newbies fail to understand how references work in PHP, nobody really knows :-\ Quote Link to comment https://forums.phpfreaks.com/topic/17514-solved-desparation-references-do-not-work-as-expected/#findComment-74567 Share on other sites More sharing options...
Chetan Posted August 14, 2006 Share Posted August 14, 2006 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. Quote Link to comment https://forums.phpfreaks.com/topic/17514-solved-desparation-references-do-not-work-as-expected/#findComment-74587 Share on other sites More sharing options...
yassen Posted August 14, 2006 Author Share Posted August 14, 2006 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! Quote Link to comment https://forums.phpfreaks.com/topic/17514-solved-desparation-references-do-not-work-as-expected/#findComment-74709 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.