Edit report at https://bugs.php.net/bug.php?id=55311&edit=1

 ID:                 55311
 Patch added by:     larue...@php.net
 Reported by:        steve at twitpic dot com
 Summary:            Static methods invoke __call when called from within
                     class
 Status:             Verified
 Type:               Bug
 Package:            *General Issues
 Operating System:   Ubuntu 11.04
 PHP Version:        5.3.6
 Block user comment: N
 Private report:     N

 New Comment:

The following patch has been added/updated:

Patch Name: bug55311.phpt
Revision:   1311910279
URL:        
https://bugs.php.net/patch-display.php?bug=55311&patch=bug55311.phpt&revision=1311910279


Previous Comments:
------------------------------------------------------------------------
[2011-07-29 03:29:37] larue...@php.net

The following patch has been added/updated:

Patch Name: bug55311.patch
Revision:   1311910177
URL:        
https://bugs.php.net/patch-display.php?bug=55311&patch=bug55311.patch&revision=1311910177

------------------------------------------------------------------------
[2011-07-29 03:28:51] larue...@php.net

looks like for some reason someone change the if/else sequence make this bug, 
but I am not sure why he do this.

------------------------------------------------------------------------
[2011-07-28 21:04:42] steve at twitpic dot com

Description:
------------
When calling a non-existant static method within an objects method, php invokes 
_call instead of 
__callStatic. When calling the same non-existant static method outside of the 
object, php correctly 
invokes __callStatic.

It appears that this broke in php5.3.5 and is still broken in 5.3.6. It works 
as 
expected in 5.3.3, 
however.

Test script:
---------------
class Test {

  public function __call($method, $args) {
   echo "call\n";
  }

  public static function __callStatic($method, $args) {
   echo "callStatic\n";
  }

  public function testing() {

    Test::fakeFunction();

  }

}

$t = new Test;
$t->testing();
Test::fakeFunction();

Expected result:
----------------
// expected output
callStatic
callStatic

Actual result:
--------------
// output
call
callStatic


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=55311&edit=1

Reply via email to