Maybe I'm using "reentrant" incorrectly, but here is what I mean... class Test { function __get($nm) { if ($nm == 'x') return $this->func(); elseif ($nm == 'y') return 'y'; elseif ($nm == 'xx') return 'x'; } function func() { return $this->xx; } } $t = new Test(); print $t->y . "\n"; print $t->xx . "\n"; print $t->x . "\n"; print $t->func() . "\n"; I would expect the following code to output: y x x x But instead, it outputs: y x x Is this a bug? This limitation is not documented (maybe it should be?). -- C -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php