@@ -5,6 +5,7 @@ Tests an exhaustive list of valid expressions containing the default keyword
5
5
6
6
function F ($ V = 2 ) { return $ V ; }
7
7
8
+ echo "Numeric binary operators (LHS) \n" ;
8
9
var_dump (F (default + 1 ));
9
10
var_dump (F (default - 1 ));
10
11
var_dump (F (default * 2 ));
@@ -16,7 +17,9 @@ var_dump(F(default ^ 2));
16
17
var_dump (F (default << 1 ));
17
18
var_dump (F (default >> 1 ));
18
19
var_dump (F (default ** 2 ));
19
- echo PHP_EOL ;
20
+ var_dump (F (default <=> 2 ));
21
+
22
+ echo "\nNumeric binary operators (RHS) \n" ;
20
23
var_dump (F (1 + default));
21
24
var_dump (F (1 - default));
22
25
var_dump (F (2 * default));
@@ -28,8 +31,65 @@ var_dump(F(2 ^ default));
28
31
var_dump (F (1 << default));
29
32
var_dump (F (1 >> default));
30
33
var_dump (F (2 ** default));
34
+ var_dump (F (2 <=> default));
35
+
36
+ echo "\nBoolean binary operators \n" ;
37
+ var_dump (F (default === 2 ));
38
+ var_dump (F (default !== 2 ));
39
+ var_dump (F (default == '2 ' ));
40
+ var_dump (F (default != '2 ' ));
41
+ var_dump (F (default >= 1 ));
42
+ var_dump (F (default <= 1 ));
43
+ var_dump (F (default > 1 ));
44
+ var_dump (F (default < 1 ));
45
+ var_dump (F (default && 0 ));
46
+ var_dump (F (default || 0 ));
47
+ var_dump (F (default and 0 ));
48
+ var_dump (F (default or 0 ));
49
+ var_dump (F (default xor 0 ));
50
+
51
+ echo "\nUnary operators \n" ;
52
+ var_dump (F (+default));
53
+ var_dump (F (-default));
54
+ var_dump (F (!default));
55
+ var_dump (F (~default));
56
+
57
+ echo "\nConditional expressions \n" ;
58
+ var_dump (F (default ? 1 : 0 ));
59
+ var_dump (F (1 ? default : 0 ));
60
+ var_dump (F (1 ? 1 : default));
61
+ var_dump (F (default ?: 0 ));
62
+ var_dump (F (0 ?: default));
63
+ var_dump (F (default ?? 0 ));
64
+ var_dump (F (null ?? default));
65
+
66
+ echo "\nCasts \n" ;
67
+ var_dump (F ((int )default));
68
+ var_dump (F ((double )default));
69
+ var_dump (F ((string )default));
70
+ var_dump (F ((array )default));
71
+ var_dump (F ((object )default));
72
+ var_dump (F ((bool )default));
73
+
74
+ echo "\nInternal functions \n" ;
75
+ var_dump (F (empty (default)));
76
+ // eval() makes no sense.
77
+ // exit() makes no sense.
78
+ // TODO?
79
+ // include()
80
+ // include_once()
81
+ // require()
82
+ // require_once()
83
+
84
+ echo "\nMatch tier \n" ;
85
+ var_dump (F (match (default) { default => default }));
86
+ var_dump (F (match (default) { 2 => 3 }));
87
+
88
+ echo "\nPrint tier \n" ;
89
+ var_dump (F (print default));
31
90
?>
32
91
--EXPECT--
92
+ Numeric binary operators (LHS)
33
93
int(3)
34
94
int(1)
35
95
int(4)
@@ -41,7 +101,9 @@ int(0)
41
101
int(4)
42
102
int(1)
43
103
int(4)
104
+ int(0)
44
105
106
+ Numeric binary operators (RHS)
45
107
int(3)
46
108
int(-1)
47
109
int(4)
@@ -53,3 +115,58 @@ int(0)
53
115
int(4)
54
116
int(0)
55
117
int(4)
118
+ int(0)
119
+
120
+ Boolean binary operators
121
+ bool(true)
122
+ bool(false)
123
+ bool(true)
124
+ bool(false)
125
+ bool(true)
126
+ bool(false)
127
+ bool(true)
128
+ bool(false)
129
+ bool(false)
130
+ bool(true)
131
+ bool(false)
132
+ bool(true)
133
+ bool(true)
134
+
135
+ Unary operators
136
+ int(2)
137
+ int(-2)
138
+ bool(false)
139
+ int(-3)
140
+
141
+ Conditional expressions
142
+ int(1)
143
+ int(2)
144
+ int(1)
145
+ int(2)
146
+ int(2)
147
+ int(2)
148
+ int(2)
149
+
150
+ Casts
151
+ int(2)
152
+ float(2)
153
+ string(1) "2"
154
+ array(1) {
155
+ [0]=>
156
+ int(2)
157
+ }
158
+ object(stdClass)#1 (1) {
159
+ ["scalar"]=>
160
+ int(2)
161
+ }
162
+ bool(true)
163
+
164
+ Internal functions
165
+ bool(false)
166
+
167
+ Match tier
168
+ int(2)
169
+ int(3)
170
+
171
+ Print tier
172
+ 2int(1)
0 commit comments