Re: Confusing performance of the magic method __call

From: Date: Tue, 03 Aug 2010 11:23:47 +0000
Subject: Re: Confusing performance of the magic method __call
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-49196@lists.php.net to get a copy of this message
2010/8/3 Victor Bolshov <crocodile2u@gmail.com>: > 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. >> > > > > -- > С уважением, > Виктор > It was added/changed with 5.3 so it is not necessarly obvious. Tyrael

« previous php.internals (#49196) next »