Hello Jochem, using 'protected' for __call() hides that mechanism from the outside world, hence the behavior is correct. Just drop protected and it should work as you expect.
marcus Sunday, April 4, 2004, 9:49:44 PM, you wrote: > the following code does not do what I expect, I made this test case > after a new version of PHP5 was put on the system I am developing > yesterday and some of my code no longer works: > <? > Class CallMe > { > public function setup() > { > $this->fakeMethod(); > } > protected function __call($method, $params) > { > echo 'you called CallMe::'.$method."\n"; > } > } > echo <<< ___THEEND > EXPECTED RESULT: > ----------------------------------------- > you called CallMe::fakeMethod > ACTUAL RESULT: > ----------------------------------------- > ___THEEND; > $obj = new CallMe(); > $obj->setup(); ?>> > running the script on 'PHP 5.0.0RC2-dev (cli) (built: Apr 4 2004 > 13:07:13) (DEBUG)' gives me: > <snip> > EXPECTED RESULT: > ----------------------------------------- > you called CallMe::fakeMethod > ACTUAL RESULT: > ----------------------------------------- > PHP Fatal error: Call to protected method CallMe::__call() from context > '' in /var/www/santos/test/call.protected.php on line 7 > Fatal error: Call to protected method CallMe::__call() from context '' > in /var/www/santos/test/call.protected.php on line 7 > </snip> > Have I misunderstood the way PHP5 works? > Or maybe something is broken? does anyone else get an error? > I don't rule out that this could be something specific to the machine I > am on, unfortunately I am limited by knowledge and access in determining > if this is the case. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php