Re: Confusing performance of the magic method __call
| From: | Victor Bolshov | Date: | Tue, 03 Aug 2010 11:15:35 +0000 |
| Subject: | Re: Confusing performance of the magic method __call | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-49195@lists.php.net to get a copy of this message | ||
Shijiang, did you notice the
--
Warning: The magic method __call() must have public visibility and cannot be
static in Command line code on line 1
--
???
2010/8/3 Shijiang <shijiang@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.
>
--
С уважением,
Виктор