File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Anonymous class in trait must be declared only once
3
+ --FILE--
4
+ <?php
5
+
6
+ trait TraitWithAnonymousClass
7
+ {
8
+ public function foo (): object
9
+ {
10
+ return new class () {};
11
+ }
12
+ }
13
+
14
+ $ c = count (get_declared_classes ());
15
+
16
+ if (time () > 0 ) {
17
+ class A { use TraitWithAnonymousClass; }
18
+ var_dump (count (get_declared_classes ()) - $ c );
19
+
20
+ $ o = new A ();
21
+ var_dump (count (get_declared_classes ()) - $ c );
22
+
23
+ $ o ->foo ();
24
+ var_dump (count (get_declared_classes ()) - $ c );
25
+ }
26
+
27
+ eval ('class B { use TraitWithAnonymousClass; } ' );
28
+ var_dump (count (get_declared_classes ()) - $ c );
29
+
30
+ $ o = new B ();
31
+ var_dump (count (get_declared_classes ()) - $ c );
32
+
33
+ $ o ->foo ();
34
+ var_dump (count (get_declared_classes ()) - $ c );
35
+
36
+ ?>
37
+ --EXPECT--
38
+ int(1)
39
+ int(1)
40
+ int(1)
41
+ int(2)
42
+ int(2)
43
+ int(2)
You can’t perform that action at this time.
0 commit comments