After a full day of looking into a bug on a script i have i found this problem.

basically if you invoke a method from a member object it adds a ref instead of
keeping it 'non ref'. 

 Is this by design or is it a bug.

<?
class foo
{
        var $bar;
        function foo()
        {
                $this->bar = new bar("inside foo");
                $this->bar->set_tmp("why does this add a ref");

                /*
                // this works fine
                $bar = new bar("inside foo");
                $bar->set_tmp("no ref");
                $this->bar = $bar;
                */

                /*
                //this doesn't work
                $bar = new bar("inside foo");
                $this->bar = $bar;
                $this->bar->set_tmp("why does this add a ref");
                */
        }
}

class bar
{
        var $tmp;

        function bar($tmp)
        {
                $this->tmp = $tmp;
        }

        function set_tmp($tmp)
        {
                $this->tmp = $tmp;
        }
}

var_dump(new foo());

?>

 - Brad


__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to