2010/8/3 Shijiang <shiji...@staff.sina.com.cn>: > Hi, > > In the following sample code, I expected that the magic method __call only > works within the class Test. > But it seems that the access control keyword private lost its efficacy when > working together with the magic method __call. > > <?php > class Test{ > private function __call($name,$params){ > echo $name,"\n"; > echo $params[0]; > } > > public function bar(){ > $this->kakaka('afaafaf'); > } > } > $foo=new Test; > $foo->bar('sfsfss'); > $foo->nothing('works'); // this also works without any errors. > ?> > > IMHO, since the function __call is a method of a class, it should obey the > visibility rules. > > Cheers. >
http://www.php.net/manual/en/migration53.incompatible.php The magic methods __get, __set, __isset, __unset, and __call must always be public and can no longer be static. Method signatures are now enforced. Tyrael -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php