why do the following two examples result in different things, even
though i would expect the same behaviour?
in words: i pass a reference of a class-property to a variable $walk,
if i overwrite $walk, the class-property has a new value too (seems
logical, since we are working with references not pointers)
BUT
if i use a class-method which returns a reference to this
class-property, to set $walk ... and then i overwrite $walk the
class-property didnt change
code-example
<?php
class test
{
var $data;
function test()
{
$this->data[0] = 'level zero';
$this->data[1] = 'level one';
}
function &getData( $id )
{
return $this->data[$id];
}
}
$test = new test;
print('<br>');
print_r($test);
// the following block overwrites $test->data[0] with $test->data[1]
$walk = &$test->data[0];
$walk = $test->data[1];
print('<br>');
print_r($test);
$test = new test;
// but this one does NOT !!!
$walk = $test->getData(0);
$walk = $test->data[1];
print('<br>');
print_r($test);
?>
--
Wolfram
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]