global statement removal: hphp/test [7/x]
[hiphop-php.git] / hphp / test / quick / cuf__callStatic5.php
blob11759afcf1bc23eaee5136f4d3f22379b1574635
1 <?hh
3 class C1 {
4 public static function __callStatic($fn, $args) {
5 var_dump($fn, $args);
6 echo "\n";
10 function main1() {
11 // call_user_func
12 call_user_func(array('C1', "__callStatic"), "a", "b", "c", "d");
13 call_user_func(array('C1', "foo"), "a", "b", "c", "d");
15 // call_user_func_array
16 call_user_func_array(array('C1', "__callStatic"), array("a", "b", "c", "d"));
17 call_user_func_array(array('C1', "foo"), array("a", "b", "c", "d"));
19 main1();
21 class C2 {
22 public static function __callStatic($fn, $args) {
23 echo "C2::__callStatic\n";
24 var_dump($fn, $args);
25 echo "\n";
27 public function test() {
28 call_user_func(array('C2', '__callStatic'), "a", "b", "c", "d");
29 call_user_func(array('C2', 'foo'), "a", "b", "c", "d");
30 call_user_func(array('self', '__callStatic'), "a", "b", "c", "d");
31 call_user_func(array('self', 'foo'), "a", "b", "c", "d");
35 function main2() {
36 $obj = new C2;
37 $obj->test();
39 main2();
41 class C3 {
42 public static function __callStatic($fn, $args) {
43 echo "C3::__callStatic\n";
44 var_dump($fn, $args);
45 echo "\n";
47 public static function test() {
48 // FPushClsMethodD
49 call_user_func(array('C3', 'foo'), "a", "b", "c", "d");
50 // FPushClsMethodF
51 call_user_func(array('self', 'foo'), "a", "b", "c", "d");
55 function main3() {
56 $obj = new C3;
57 $obj->test();
59 main3();
61 class B4 {
62 public static function __callStatic($fn, $args) {
63 var_dump($fn, $args);
64 echo "\n";
67 class C4 extends B4 {
70 function main4() {
71 $obj = new C4;
73 call_user_func(array('C4', 'foo'), "a", "b", "c", "d");
75 main4();
77 class A5 {
78 public function foo($w, $x, $y, $z) {
79 echo "A5::foo\n";
82 class B5 extends A5 {
83 public static function __callStatic($fn, $args) {
84 var_dump($fn, $args);
85 echo "\n";
88 class C5 extends B5 {
91 function main5() {
92 $obj = new C5;
93 call_user_func(array('C5', 'foo'), "a", "b", "c", "d");
95 main5();
97 class A6 {
99 class B6 extends A6 {
100 public function test() {
101 call_user_func('A6::foo', 1, 2, 3);
102 call_user_func(array('A6','foo'), 1, 2, 3);
105 class C6 extends B6 {
106 public static function __callStatic($fn, $args) {
107 var_dump($fn, $args);
111 function main6() {
112 $obj = new C6;
113 $obj->test();
115 $obj = new B6;
116 $obj->test();
118 main6();
120 class A7 {
121 public static function __callStatic($fn, $args) {
122 var_dump($fn, $args);
125 class B7 extends A7 {
126 public function test() {
127 call_user_func('A7::foo', 1, 2, 3);
128 call_user_func(array('A7', 'foo'), 1, 2, 3);
131 class C7 extends B7 {
134 function main7() {
135 $obj = new C7;
136 $obj->test();
138 $obj = new B7;
139 $obj->test();
141 main7();
143 class A8 {
144 public static function __callStatic($fn, $args) {
145 var_dump($fn, $args);
148 class B8 {
149 public function test() {
150 call_user_func('A8::foo', 1, 2, 3);
151 call_user_func(array('A8', 'foo'), 1, 2, 3);
154 class C8 extends B8 {
157 function main8() {
158 $obj = new C8;
159 $obj->test();
161 main8();
163 class C9 {
165 class D9 extends C9 {
166 public static function __callStatic($fn, $args) {
167 echo "D9::__callStatic\n";
170 class E9 extends D9 {
171 public static function __callStatic($fn, $args) {
172 echo "E9::__callStatic\n";
174 public function test() {
175 call_user_func(array('self', 'foo'));
176 call_user_func(array('D9', 'foo'));
177 call_user_func(array('E9', 'foo'));
180 class F9 extends D9 {
181 public static function __callStatic($fn, $args) {
182 echo "F9::__callStatic\n";
186 function main9() {
187 $obj = new E9;
188 $obj->test();
190 call_user_func(array('E9', 'foo'));
191 call_user_func(array('D9', 'foo'));
193 main9();