xref: /PHP-5.5/Zend/tests/bug45186.phpt (revision e3ced0b5)
1--TEST--
2Bug #45186 (__call depends on __callstatic in class scope)
3--FILE--
4<?php
5
6class bar  {
7	public function __call($a, $b) {
8		print "__call:\n";
9		var_dump($a);
10	}
11	static public function __callstatic($a, $b) {
12		print "__callstatic:\n";
13		var_dump($a);
14	}
15	public function test() {
16		self::ABC();
17		bar::ABC();
18		call_user_func(array('BAR', 'xyz'));
19		call_user_func('BAR::www');
20		call_user_func(array('self', 'y'));
21		call_user_func('self::y');
22	}
23	static function x() {
24		print "ok\n";
25	}
26}
27
28$x = new bar;
29
30$x->test();
31
32call_user_func(array('BAR','x'));
33call_user_func('BAR::www');
34call_user_func('self::y');
35
36?>
37--EXPECTF--
38__call:
39string(3) "ABC"
40__call:
41string(3) "ABC"
42__call:
43string(3) "xyz"
44__call:
45string(3) "www"
46__call:
47string(1) "y"
48__call:
49string(1) "y"
50ok
51__callstatic:
52string(3) "www"
53
54Warning: call_user_func() expects parameter 1 to be a valid callback, cannot access self:: when no class scope is active in %sbug45186.php on line 31
55