Edit report at http://bugs.php.net/bug.php?id=51176&edit=1
ID: 51176 Updated by: fel...@php.net Reported by: majkl578 at gmail dot com Summary: Static calling in non-static method behaves like $this-> Status: Closed Type: Bug Package: Scripting Engine problem Operating System: Irrelevant PHP Version: 5.3.2RC3 Assigned To: felipe New Comment: Hello! This isn't my decision, but the release manager. Thanks. Previous Comments: ------------------------------------------------------------------------ [2010-03-04 12:33:59] majkl578 at gmail dot com Can you explain me, please, why this is not fixed in 5.3.2 stable? "Thank you for the report, and for helping us make PHP better." You are intentionally making PHP worse! ------------------------------------------------------------------------ [2010-03-02 13:37:35] majkl578 at gmail dot com Will you backport this bugfix to PHP 5.3.2 branch? Otherwise the behavior will be really odd due to presence of this bug. ------------------------------------------------------------------------ [2010-03-02 01:17:06] fel...@php.net -Status: Open +Status: Closed ------------------------------------------------------------------------ [2010-03-02 01:17:06] fel...@php.net This bug has been fixed in SVN. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2010-03-01 16:53:03] majkl578 at gmail dot com Description: ------------ When calling non-existing static method from non-static method, __call() is called instead of __callStatic(). self/static/className behaves incorrectly - like $this-> in that context. Verified on 5.3.2RC3, 5.3.1 and 5.3.0. Reproduce code: --------------- class Foo { public function start() { self::bar(); static::bar(); Foo::bar(); } public function __call($n, $a) { echo 'instance'; } public static function __callStatic($n, $a) { echo 'static'; } } $foo = new Foo(); $foo->start(); Expected result: ---------------- static static static Actual result: -------------- instance instance instance ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=51176&edit=1