File tree 1 file changed +78
-0
lines changed 1 file changed +78
-0
lines changed Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Internal handlers that do not explicitly support userland ArrayAccess
3
+ --EXTENSIONS--
4
+ zend_test
5
+ --FILE--
6
+ <?php
7
+
8
+ class NoImplement extends DimensionHandlersNoArrayAccess {}
9
+
10
+ class DoImplement extends DimensionHandlersNoArrayAccess implements ArrayAccess {
11
+ public function offsetSet ($ offset , $ value ): void {
12
+ var_dump (__METHOD__ );
13
+ var_dump ($ offset );
14
+ var_dump ($ value );
15
+ }
16
+ public function offsetGet ($ offset ): mixed {
17
+ var_dump (__METHOD__ );
18
+ var_dump ($ offset );
19
+ return "dummy " ;
20
+ }
21
+ public function offsetUnset ($ offset ): void {
22
+ var_dump (__METHOD__ );
23
+ var_dump ($ offset );
24
+ }
25
+ public function offsetExists ($ offset ): bool {
26
+ var_dump (__METHOD__ );
27
+ var_dump ($ offset );
28
+ return true ;
29
+ }
30
+ }
31
+
32
+ $ no = new NoImplement ();
33
+ $ do = new DoImplement ();
34
+
35
+ $ no ['foo ' ];
36
+ var_dump ($ no );
37
+
38
+ $ do ['foo ' ];
39
+ var_dump ($ do );
40
+
41
+ ?>
42
+ --EXPECTF--
43
+ object(NoImplement)#1 (7) {
44
+ ["read"]=>
45
+ bool(true)
46
+ ["write"]=>
47
+ bool(false)
48
+ ["has"]=>
49
+ bool(false)
50
+ ["unset"]=>
51
+ bool(false)
52
+ ["readType"]=>
53
+ int(0)
54
+ ["hasOffset"]=>
55
+ bool(true)
56
+ ["checkEmpty"]=>
57
+ uninitialized(int)
58
+ ["offset"]=>
59
+ string(3) "foo"
60
+ }
61
+ object(DoImplement)#2 (7) {
62
+ ["read"]=>
63
+ bool(true)
64
+ ["write"]=>
65
+ bool(false)
66
+ ["has"]=>
67
+ bool(false)
68
+ ["unset"]=>
69
+ bool(false)
70
+ ["readType"]=>
71
+ int(0)
72
+ ["hasOffset"]=>
73
+ bool(true)
74
+ ["checkEmpty"]=>
75
+ uninitialized(int)
76
+ ["offset"]=>
77
+ string(3) "foo"
78
+ }
You can’t perform that action at this time.
0 commit comments