Hi, Syntax B doesnt seem to work exactly because as you say "it doesn't directly access the 'bars' variable...";
here... $reference_to_bar = $this->GetBar($id) ; it seems that a copy of the bar object is being created, which is a new object. This new bar object is not related to the bar object which is a part of the $bars array property of the foo object. When you set the marklar property to the new value ... $reference_to_bar->SetMarklar($value) ; the value is changed for the new copy of the bar object you have just created. Because this value is assigned to the new object it doesn't appear when you print the contents of foo. This is illustrated by the lines i've added below. Maybe after setting the new property value you could reassigned this object to the $bars array of object foo. I'm no expert but it's always fun to play with code... Hope this helps in some way, Javier /* But this syntax doesn't: and this would be prefered, as it doesn't directly access the 'bars' variable... */ $reference_to_bar = $this->GetBar($id) ; echo $reference_to_bar->marklar; $reference_to_bar->SetMarklar($value) ; echo $reference_to_bar->marklar; print_r($reference_to_bar); _________________________________________________________________ Chat with friends online, try MSN Messenger: http://messenger.msn.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php