I have a class that takes as input, an array by reference and stores it in a
member variable. A method in this class later modifies the member variable
(which contains reference to the array). When I access the local variable
that was passed by reference to the constructor of this class object, I see
the local variable hasn't changed at all. I think code will describe what
words may not have:
<?php
class foo
{
public $_bar;
public function __construct(& $bar)
{
$this->_bar = $bar;
}
function do_your_thing()
{
$temp = array(
'One' => 1,
'Two' => 2
);
$this->_bar[] = $temp;
echo('from Do_your_thing: ');
print_r($this->_bar); // ---------------- [1]
}
}
$abc = array();
$var = new foo($abc);
$var->do_your_thing();
echo('from main [local variable]: ');
print_r($abc); // ---------------- [2]
echo('from main: [object member variable] ');
print_r($var->_bar); // ---------------- [3]
?>
I expected the output from [1], [2] and [3] to be the same. But instead I
get the following:
from Do_your_thing: Array
(
[0] => Array
(
[One] => 1
[Two] => 2
)
)
from main [local variable]: Array
(
)
from main: [object member variable] Array
(
[0] => Array
(
[One] => 1
[Two] => 2
)
)
What am I missing? Please help, I'm new to PHP and this is really blocking
me.
Thanks
M@nish
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php