Confusing performance of the magic method __call
| From: | Shijiang | Date: | Tue, 03 Aug 2010 11:09:46 +0000 |
| Subject: | Confusing performance of the magic method __call | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-49193@lists.php.net to get a copy of this message | ||
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.