--- /dev/null
+--TEST--
+Testing callback formats within class method
+--FILE--
+<?php
+
+class foo {
+ public function test() {
+ call_user_func(array('FOO', 'ABC'));
+ call_user_func(array($this, 'ABC'));
+ foo::XYZ();
+ self::WWW();
+ call_user_func('FOO::ABC');
+ }
+ function __call($a, $b) {
+ print "__call:\n";
+ var_dump($a);
+ }
+ static public function __callStatic($a, $b) {
+ print "__callstatic:\n";
+ var_dump($a);
+ }
+}
+
+$x = new foo;
+
+$x->test();
+
+$x::A();
+
+foo::B();
+
+$f = 'FOO';
+
+$f::C();
+
+$f::$f();
+
+foo::$f();
+
+?>
+--EXPECT--
+__call:
+string(3) "ABC"
+__call:
+string(3) "ABC"
+__call:
+string(3) "XYZ"
+__call:
+string(3) "WWW"
+__call:
+string(3) "ABC"
+__callstatic:
+string(1) "A"
+__callstatic:
+string(1) "B"
+__callstatic:
+string(1) "C"
+__callstatic:
+string(3) "FOO"
+__callstatic:
+string(3) "FOO"