__get() example via Zandstra

bushbangkok

New Member
Matt Zandstra gives the following example in his text "PHP Objects Patterns and Practice" to illustrate the __get() method:\[code\]class Person { function __get( $property ) { $method = "get{$property}"; if ( method_exists( $this, $method ) ) { return $this->$method(); } } function getName() { return "Bob"; } function getAge() { return 44; }}\[/code\]In reality, we know we would never actually create such methods (getName and getAge) to return such static values, but instead - we would create name and age properties in the object and return those using the $this operator.My question is whether this example actually shows utility. And if it does not, could somebody provide a better example of why one would use __get() for the same sort of purpose?Justification for asking If we were to use name and age properties in the object, then the __get() function would not be fired anyway, because attempting to get these properties with:\[code\]$person = new Person();$name = $person->name;\[/code\]would cause either the name property to actually be returned if it were public, or cause a visibility error if it were private or protected. The __get() function would not be executed in either of these 'real' cases... am i missing something?I'm fully aware that the above code works. I am not convinced that it is a practical example.
 
Top