|
2 | 2 | Test closure isStatic |
3 | 3 | --FILE-- |
4 | 4 | <?php |
| 5 | +class Foo { |
| 6 | + public static function bar(){} |
| 7 | + public function baz() {} |
5 | 8 |
|
6 | | -namespace { |
7 | | - class Foo { |
8 | | - public static function bar(){} |
9 | | - public function baz() {} |
10 | | - |
11 | | - public function qux() { |
12 | | - return static function(){}; |
13 | | - } |
| 9 | + public function qux() { |
| 10 | + return static function(){}; |
14 | 11 | } |
15 | | - |
16 | | - $foo = new Foo; |
17 | | - |
18 | | - var_dump( |
19 | | - (new ReflectionFunction(function(){}))->isStatic(), |
20 | | - (new ReflectionFunction(static function(){}))->isStatic(), |
21 | | - (new ReflectionFunction($foo->qux()))->isStatic(), |
22 | | - (new ReflectionMethod($foo, 'bar'))->isStatic(), |
23 | | - (new ReflectionMethod($foo, 'baz'))->isStatic(), |
24 | | - |
25 | | - // Static closure inference exceptions |
26 | | - (new ReflectionFunction(function () { $$var; }))->isStatic(), |
27 | | - (new ReflectionFunction(function () { $var(); }))->isStatic(), |
28 | | - (new ReflectionFunction(function () { call_user_func('Foo::bar'); }))->isStatic(), |
29 | | - (new ReflectionFunction(function () { ('Foo::bar')(); }))->isStatic(), |
30 | | - (new ReflectionFunction(function () { Foo::bar(); }))->isStatic(), |
31 | | - (new ReflectionFunction(function () { $this; }))->isStatic(), |
32 | | - (new ReflectionFunction(function () { function () { $this; }; }))->isStatic(), |
33 | | - (new ReflectionFunction(function () { function () { require $var; }; }))->isStatic(), |
34 | | - (new ReflectionFunction(function () { function () { eval('Foo::bar();'); }; }))->isStatic(), |
35 | | - ); |
36 | 12 | } |
37 | 13 |
|
38 | | -namespace Foo { |
39 | | - var_dump( |
40 | | - // Static closure inference exceptions |
41 | | - (new \ReflectionFunction(function () { call_user_func('Foo::bar'); }))->isStatic(), |
42 | | - (new \ReflectionFunction(function () { ('Foo::bar')(); }))->isStatic(), |
43 | | - (new \ReflectionFunction(function () { Foo::bar(); }))->isStatic(), |
44 | | - ); |
45 | | -} |
| 14 | +$foo = new Foo; |
46 | 15 |
|
| 16 | +var_dump( |
| 17 | + (new ReflectionFunction(function(){}))->isStatic(), |
| 18 | + (new ReflectionFunction(static function(){}))->isStatic(), |
| 19 | + (new ReflectionFunction($foo->qux()))->isStatic(), |
| 20 | + (new ReflectionMethod($foo, 'bar'))->isStatic(), |
| 21 | + (new ReflectionMethod($foo, 'baz'))->isStatic(),); |
47 | 22 | ?> |
48 | 23 | --EXPECT-- |
49 | 24 | bool(true) |
50 | 25 | bool(true) |
51 | 26 | bool(true) |
52 | 27 | bool(true) |
53 | 28 | bool(false) |
54 | | -bool(false) |
55 | | -bool(false) |
56 | | -bool(false) |
57 | | -bool(false) |
58 | | -bool(false) |
59 | | -bool(false) |
60 | | -bool(false) |
61 | | -bool(false) |
62 | | -bool(false) |
63 | | -bool(false) |
64 | | -bool(false) |
65 | | -bool(false) |
0 commit comments