appendices/tokens.xml
270a871223343be9280a3e8a133a5467a3e82908
...
...
@@ -4,30 +4,38 @@
4
4
<appendix xml:id="tokens" xmlns="http://docbook.org/ns/docbook">
5
5
<title>List of Parser Tokens</title>
6
6
<para>
7
-
Various parts of the PHP language are represented internally by types like
8
-
T_SR. PHP outputs identifiers like this one in parse errors, like
9
-
<literal>"Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."</literal>
7
+
Various parts of the PHP language are represented internally by tokens.
8
+
A code snippet that contains an invalid sequence of tokens may lead to errors like
9
+
<literal>Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10."</literal>
10
+
where token <code>==</code> is internally represented by <constant>T_IS_EQUAL</constant>.
10
11
</para>
12
+

11
13
<para>
12
-
You're supposed to know what T_SR means. For everybody who doesn't
13
-
know that, here is a table with those identifiers, PHP-syntax and
14
-
references to the appropriate places in the manual.
14
+
The following table lists all tokens. They are also available as PHP constants.
15
15
</para>
16
16

17
17
<note>
18
18
<title>Usage of T_* constants</title>
19
19
<para>
20
-
All tokens listed below are also defined as PHP constants. Their value is
21
-
automatically generated based on PHP's underlying parser infrastructure.
20
+
T_* constants values are automatically generated based on PHP's underlying parser infrastructure.
22
21
This means that the concrete value of a token may change between two PHP
23
-
versions. For example the <constant>T_FILE</constant> constant is
24
-
<literal>365</literal> in PHP 5.3, while the same value refers now to
25
-
<constant>T_TRAIT</constant> in PHP 5.4 and the value of <constant>T_FILE</constant>
26
-
is <literal>369</literal>. This means that your code should never rely directly
22
+
versions.
23
+
This means that your code should never rely directly
27
24
on the original T_* values taken from PHP version X.Y.Z, to provide some compatibility
28
-
across multiple PHP versions. Instead your code should utilize custom values
29
-
(using big numbers like <literal>10000</literal>) and an appropriate strategy that
30
-
will work with both PHP versions and T_* values.
25
+
across multiple PHP versions.
26
+
</para>
27
+

28
+
<para>
29
+
To make use of T_* constants across multiple PHP versions, undefined constants
30
+
may be defined by the user (using big numbers like <literal>10000</literal>) with an
31
+
appropriate strategy that will work with both PHP versions and T_* values.
32
+
<programlisting role="php">
33
+
<![CDATA[
34
+
<?php
35
+
// Prior to PHP 7.4.0, T_FN is not defined.
36
+
defined('T_FN') || define('T_FN', 10001);
37
+
]]>
38
+
</programlisting>
31
39
</para>
32
40
</note>
33
41

...
...
@@ -42,674 +50,739 @@
42
50
</row>
43
51
</thead>
44
52
<tbody>
45
-
<row>
53
+
<row xml:id="constant.t-abstract">
46
54
<entry><constant>T_ABSTRACT</constant></entry>
47
55
<entry>abstract</entry>
48
56
<entry><xref linkend="language.oop5.abstract"/></entry>
49
57
</row>
50
-
<row>
58
+
<row xml:id="constant.t-ampersand-followed-by-var-or-vararg">
59
+
<entry><constant>T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG</constant></entry>
60
+
<entry>&amp;</entry>
61
+
<entry><xref linkend="language.types.declarations"/> (available as of PHP 8.1.0)</entry>
62
+
</row>
63
+
<row xml:id="constant.t-ampersand-not-followed-by-var-or-vararg">
64
+
<entry><constant>T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG</constant></entry>
65
+
<entry>&amp;</entry>
66
+
<entry><xref linkend="language.types.declarations"/> (available as of PHP 8.1.0)</entry>
67
+
</row>
68
+
<row xml:id="constant.t-and-equal">
51
69
<entry><constant>T_AND_EQUAL</constant></entry>
52
70
<entry>&amp;=</entry>
53
71
<entry><link linkend="language.operators.assignment">assignment
54
72
operators</link></entry>
55
73
</row>
56
-
<row>
74
+
<row xml:id="constant.t-array">
57
75
<entry><constant>T_ARRAY</constant></entry>
58
76
<entry>array()</entry>
59
77
<entry><function>array</function>, <link
60
78
linkend="language.types.array.syntax">array syntax</link></entry>
61
79
</row>
62
-
<row>
80
+
<row xml:id="constant.t-array-cast">
63
81
<entry><constant>T_ARRAY_CAST</constant></entry>
64
82
<entry>(array)</entry>
65
83
<entry><link linkend="language.types.typecasting">type-casting</link></entry>
66
84
</row>
67
-
<row>
85
+
<row xml:id="constant.t-as">
68
86
<entry><constant>T_AS</constant></entry>
69
87
<entry>as</entry>
70
88
<entry>&foreach;</entry>
71
89
</row>
72
-
<row>
90
+
<row xml:id="constant.t-attribute">
91
+
<entry><constant>T_ATTRIBUTE</constant></entry>
92
+
<entry>#[</entry>
93
+
<entry><link linkend="language.attributes">attributes</link> (available as of PHP 8.0.0)</entry>
94
+
</row>
95
+
<row xml:id="constant.t-bad-character">
73
96
<entry><constant>T_BAD_CHARACTER</constant></entry>
74
97
<entry></entry>
75
-
<entry>anything below ASCII 32 except \t (0x09), \n (0x0a) and \r (0x0d)</entry>
98
+
<entry>
99
+
anything below ASCII 32 except \t (0x09), \n (0x0a) and \r (0x0d)
100
+
(available as of PHP 7.4.0)
101
+
</entry>
76
102
</row>
77
-
<row>
103
+
<row xml:id="constant.t-boolean-and">
78
104
<entry><constant>T_BOOLEAN_AND</constant></entry>
79
105
<entry>&amp;&amp;</entry>
80
106
<entry><link linkend="language.operators.logical">logical operators</link></entry>
81
107
</row>
82
-
<row>
108
+
<row xml:id="constant.t-boolean-or">
83
109
<entry><constant>T_BOOLEAN_OR</constant></entry>
84
110
<entry>||</entry>
85
111
<entry><link linkend="language.operators.logical">logical operators</link></entry>
86
112
</row>
87
-
<row>
113
+
<row xml:id="constant.t-bool-cast">
88
114
<entry><constant>T_BOOL_CAST</constant></entry>
89
115
<entry>(bool) or (boolean)</entry>
90
116
<entry><link linkend="language.types.typecasting">type-casting</link></entry>
91
117
</row>
92
-
<row>
118
+
<row xml:id="constant.t-break">
93
119
<entry><constant>T_BREAK</constant></entry>
94
120
<entry>break</entry>
95
121
<entry><link linkend="control-structures.break">break</link></entry>
96
122
</row>
97
-
<row>
123
+
<row xml:id="constant.t-callable">
98
124
<entry><constant>T_CALLABLE</constant></entry>
99
125
<entry>callable</entry>
100
126
<entry><link linkend="language.types.callable">callable</link></entry>
101
127
</row>
102
-
<row>
128
+
<row xml:id="constant.t-case">
103
129
<entry><constant>T_CASE</constant></entry>
104
130
<entry>case</entry>
105
131
<entry><link linkend="control-structures.switch">switch</link></entry>
106
132
</row>
107
-
<row>
133
+
<row xml:id="constant.t-catch">
108
134
<entry><constant>T_CATCH</constant></entry>
109
135
<entry>catch</entry>
110
136
<entry><xref linkend="language.exceptions"/></entry>
111
137
</row>
112
-
<row>
113
-
<entry><constant>T_CHARACTER</constant></entry>
114
-
<entry></entry>
115
-
<entry>not used anymore</entry>
116
-
</row>
117
-
<row>
138
+
<row xml:id="constant.t-class">
118
139
<entry><constant>T_CLASS</constant></entry>
119
140
<entry>class</entry>
120
141
<entry><link linkend="language.oop5">classes and objects</link></entry>
121
142
</row>
122
-
<row>
143
+
<row xml:id="constant.t-class-c">
123
144
<entry><constant>T_CLASS_C</constant></entry>
124
145
<entry>__CLASS__</entry>
125
146
<entry>
126
147
<link linkend="language.constants.predefined">magic constants</link>
127
148
</entry>
128
149
</row>
129
-
<row>
150
+
<row xml:id="constant.t-clone">
130
151
<entry><constant>T_CLONE</constant></entry>
131
152
<entry>clone</entry>
132
153
<entry>
133
154
<link linkend="language.oop5">classes and objects</link>
134
155
</entry>
135
156
</row>
136
-
<row>
157
+
<row xml:id="constant.t-close-tag">
137
158
<entry><constant>T_CLOSE_TAG</constant></entry>
138
159
<entry>?&gt; or %&gt;</entry>
139
160
<entry><link linkend="language.basic-syntax.phpmode">escaping
140
161
from HTML</link></entry>
141
162
</row>
142
-
<row>
163
+
<row xml:id="constant.t-coalesce">
143
164
<entry><constant>T_COALESCE</constant></entry>
144
165
<entry>??</entry>
145
166
<entry>
146
167
<link linkend="language.operators.comparison.coalesce">comparison operators</link>
147
-
(available since PHP 7.0.0)
148
168
</entry>
149
169
</row>
150
-
<row>
170
+
<row xml:id="constant.t-coalesce-equal">
171
+
<entry><constant>T_COALESCE_EQUAL</constant></entry>
172
+
<entry>??=</entry>
173
+
<entry>
174
+
<link linkend="language.operators.assignment">assignment operators</link>
175
+
(available as of PHP 7.4.0)
176
+
</entry>
177
+
</row>
178
+
<row xml:id="constant.t-comment">
151
179
<entry><constant>T_COMMENT</constant></entry>
152
180
<entry>// or #, and /* */</entry>
153
181
<entry><link linkend="language.basic-syntax.comments">comments</link></entry>
154
182
</row>
155
-
<row>
183
+
<row xml:id="constant.t-concat-equal">
156
184
<entry><constant>T_CONCAT_EQUAL</constant></entry>
157
185
<entry>.=</entry>
158
186
<entry><link linkend="language.operators.assignment">assignment
159
187
operators</link></entry>
160
188
</row>
161
-
<row>
189
+
<row xml:id="constant.t-const">
162
190
<entry><constant>T_CONST</constant></entry>
163
191
<entry>const</entry>
164
192
<entry><link linkend="language.constants">class constants</link></entry>
165
193
</row>
166
-
<row>
194
+
<row xml:id="constant.t-constant-encapsed-string">
167
195
<entry><constant>T_CONSTANT_ENCAPSED_STRING</constant></entry>
168
196
<entry>"foo" or 'bar'</entry>
169
197
<entry><link linkend="language.types.string.syntax">string syntax</link></entry>
170
198
</row>
171
-
<row>
199
+
<row xml:id="constant.t-continue">
172
200
<entry><constant>T_CONTINUE</constant></entry>
173
201
<entry>continue</entry>
174
202
<entry><link linkend="control-structures.continue">continue</link></entry>
175
203
</row>
176
-
<row>
204
+
<row xml:id="constant.t-curly-open">
177
205
<entry><constant>T_CURLY_OPEN</constant></entry>
178
206
<entry>{$</entry>
179
207
<entry><link linkend="language.types.string.parsing.complex">complex
180
208
variable parsed syntax</link></entry>
181
209
</row>
182
-
<row>
210
+
<row xml:id="constant.t-dec">
183
211
<entry><constant>T_DEC</constant></entry>
184
212
<entry>--</entry>
185
213
<entry><link
186
214
linkend="language.operators.increment">incrementing/decrementing
187
215
operators</link></entry>
188
216
</row>
189
-
<row>
217
+
<row xml:id="constant.t-declare">
190
218
<entry><constant>T_DECLARE</constant></entry>
191
219
<entry>declare</entry>
192
220
<entry><link linkend="control-structures.declare">declare</link></entry>
193
221
</row>
194
-
<row>
222
+
<row xml:id="constant.t-default">
195
223
<entry><constant>T_DEFAULT</constant></entry>
196
224
<entry>default</entry>
197
225
<entry><link linkend="control-structures.switch">switch</link></entry>
198
226
</row>
199
-
<row>
227
+
<row xml:id="constant.t-dir">
200
228
<entry><constant>T_DIR</constant></entry>
201
229
<entry>__DIR__</entry>
202
-
<entry><link linkend="language.constants.predefined">magic constants</link> (available
203
-
since PHP 5.3.0)</entry>
230
+
<entry><link linkend="language.constants.predefined">magic constants</link></entry>
204
231
</row>
205
-
<row>
232
+
<row xml:id="constant.t-div-equal">
206
233
<entry><constant>T_DIV_EQUAL</constant></entry>
207
234
<entry>/=</entry>
208
235
<entry><link linkend="language.operators.assignment">assignment
209
236
operators</link></entry>
210
237
</row>
211
-
<row>
238
+
<row xml:id="constant.t-dnumber">
212
239
<entry><constant>T_DNUMBER</constant></entry>
213
240
<entry>0.12, etc.</entry>
214
241
<entry><link linkend="language.types.float">floating point numbers</link></entry>
215
242
</row>
216
-
<row>
243
+
<row xml:id="constant.t-do">
244
+
<entry><constant>T_DO</constant></entry>
245
+
<entry>do</entry>
246
+
<entry><link linkend="control-structures.do.while">do..while</link></entry>
247
+
</row>
248
+
<row xml:id="constant.t-doc-comment">
217
249
<entry><constant>T_DOC_COMMENT</constant></entry>
218
250
<entry>/** */</entry>
219
251
<entry>
220
252
<link linkend="language.basic-syntax.comments">PHPDoc style comments</link>
221
253
</entry>
222
254
</row>
223
-
<row>
224
-
<entry><constant>T_DO</constant></entry>
225
-
<entry>do</entry>
226
-
<entry><link linkend="control-structures.do.while">do..while</link></entry>
227
-
</row>
228
-
<row>
255
+
<row xml:id="constant.t-dollar-open-curly-braces">
229
256
<entry><constant>T_DOLLAR_OPEN_CURLY_BRACES</constant></entry>
230
257
<entry>${</entry>
231
258
<entry><link linkend="language.types.string.parsing.complex">complex
232
259
variable parsed syntax</link></entry>
233
260
</row>
234
-
<row>
261
+
<row xml:id="constant.t-double-arrow">
235
262
<entry><constant>T_DOUBLE_ARROW</constant></entry>
236
263
<entry>=&gt;</entry>
237
264
<entry><link linkend="language.types.array.syntax">array syntax</link></entry>
238
265
</row>
239
-
<row>
266
+
<row xml:id="constant.t-double-cast">
240
267
<entry><constant>T_DOUBLE_CAST</constant></entry>
241
268
<entry>(real), (double) or (float)</entry>
242
269
<entry><link linkend="language.types.typecasting">type-casting</link></entry>
243
270
</row>
244
-
<row>
271
+
<row xml:id="constant.t-double-colon">
245
272
<entry><constant>T_DOUBLE_COLON</constant></entry>
246
273
<entry>::</entry>
247
274
<entry>see <constant>T_PAAMAYIM_NEKUDOTAYIM</constant> below</entry>
248
275
</row>
249
-
<row>
276
+
<row xml:id="constant.t-echo">
250
277
<entry><constant>T_ECHO</constant></entry>
251
278
<entry>echo</entry>
252
279
<entry><function>echo</function></entry>
253
280
</row>
254
-
<row>
281
+
<row xml:id="constant.t-ellipsis">
255
282
<entry><constant>T_ELLIPSIS</constant></entry>
256
283
<entry>...</entry>
257
284
<entry>
258
-
<link linkend="functions.variable-arg-list.new">function arguments</link>
259
-
(available since PHP 5.6.0)
285
+
<link linkend="functions.variable-arg-list">function arguments</link>
260
286
</entry>
261
287
</row>
262
-
<row>
288
+
<row xml:id="constant.t-else">
263
289
<entry><constant>T_ELSE</constant></entry>
264
290
<entry>else</entry>
265
291
<entry><link linkend="control-structures.else">else</link></entry>
266
292
</row>
267
-
<row>
293
+
<row xml:id="constant.t-elseif">
268
294
<entry><constant>T_ELSEIF</constant></entry>
269
295
<entry>elseif</entry>
270
296
<entry><link linkend="control-structures.elseif">elseif</link></entry>
271
297
</row>
272
-
<row>
298
+
<row xml:id="constant.t-empty">
273
299
<entry><constant>T_EMPTY</constant></entry>
274
300
<entry>empty</entry>
275
301
<entry><function>empty</function></entry>
276
302
</row>
277
-
<row>
303
+
<row xml:id="constant.t-encapsed-and-whitespace">
278
304
<entry><constant>T_ENCAPSED_AND_WHITESPACE</constant></entry>
279
305
<entry>" $a"</entry>
280
306
<entry><link linkend="language.types.string.parsing">constant part of
281
307
string with variables</link></entry>
282
308
</row>
283
-
<row>
309
+
<row xml:id="constant.t-enddeclare">
284
310
<entry><constant>T_ENDDECLARE</constant></entry>
285
311
<entry>enddeclare</entry>
286
312
<entry><link linkend="control-structures.declare">declare</link>, <link
287
313
linkend="control-structures.alternative-syntax">alternative syntax</link></entry>
288
314
</row>
289
-
<row>
315
+
<row xml:id="constant.t-endfor">
290
316
<entry><constant>T_ENDFOR</constant></entry>
291
317
<entry>endfor</entry>
292
318
<entry><link linkend="control-structures.for">for</link>, <link
293
319
linkend="control-structures.alternative-syntax">alternative syntax</link></entry>
294
320
</row>
295
-
<row>
321
+
<row xml:id="constant.t-endforeach">
296
322
<entry><constant>T_ENDFOREACH</constant></entry>
297
323
<entry>endforeach</entry>
298
324
<entry>&foreach;, <link
299
325
linkend="control-structures.alternative-syntax">alternative syntax</link></entry>
300
326
</row>
301
-
<row>
327
+
<row xml:id="constant.t-endif">
302
328
<entry><constant>T_ENDIF</constant></entry>
303
329
<entry>endif</entry>
304
330
<entry><link linkend="control-structures.if">if</link>, <link
305
331
linkend="control-structures.alternative-syntax">alternative syntax</link></entry>
306
332
</row>
307
-
<row>
333
+
<row xml:id="constant.t-endswitch">
308
334
<entry><constant>T_ENDSWITCH</constant></entry>
309
335
<entry>endswitch</entry>
310
336
<entry><link linkend="control-structures.switch">switch</link>, <link
311
337
linkend="control-structures.alternative-syntax">alternative syntax</link></entry>
312
338
</row>
313
-
<row>
339
+
<row xml:id="constant.t-endwhile">
314
340
<entry><constant>T_ENDWHILE</constant></entry>
315
341
<entry>endwhile</entry>
316
342
<entry><link linkend="control-structures.while">while</link>, <link
317
343
linkend="control-structures.alternative-syntax">alternative syntax</link></entry>
318
344
</row>
319
-
<row>
345
+
<row xml:id="constant.t-enum">
346
+
<entry><constant>T_ENUM</constant></entry>
347
+
<entry>enum</entry>
348
+
<entry><link linkend="language.types.enumerations">Enumerations</link> (available as of PHP 8.1.0)</entry>
349
+
</row>
350
+
<row xml:id="constant.t-end-heredoc">
320
351
<entry><constant>T_END_HEREDOC</constant></entry>
321
352
<entry></entry>
322
353
<entry><link linkend="language.types.string.syntax.heredoc">heredoc
323
354
syntax</link></entry>
324
355
</row>
325
-
<row>
356
+
<row xml:id="constant.t-eval">
326
357
<entry><constant>T_EVAL</constant></entry>
327
358
<entry>eval()</entry>
328
359
<entry><function>eval</function></entry>
329
360
</row>
330
-
<row>
361
+
<row xml:id="constant.t-exit">
331
362
<entry><constant>T_EXIT</constant></entry>
332
363
<entry>exit or die</entry>
333
364
<entry><function>exit</function>, <function>die</function></entry>
334
365
</row>
335
-
<row>
366
+
<row xml:id="constant.t-extends">
336
367
<entry><constant>T_EXTENDS</constant></entry>
337
368
<entry>extends</entry>
338
369
<entry><link linkend="language.oop5.basic.extends">extends</link>, <link
339
370
linkend="language.oop5">classes and objects</link></entry>
340
371
</row>
341
-
<row>
372
+
<row xml:id="constant.t-file">
342
373
<entry><constant>T_FILE</constant></entry>
343
374
<entry>__FILE__</entry>
344
375
<entry><link linkend="language.constants.predefined">magic constants</link></entry>
345
376
</row>
346
-
<row>
377
+
<row xml:id="constant.t-final">
347
378
<entry><constant>T_FINAL</constant></entry>
348
379
<entry>final</entry>
349
380
<entry><xref linkend="language.oop5.final"/></entry>
350
381
</row>
351
-
<row>
382
+
<row xml:id="constant.t-finally">
352
383
<entry><constant>T_FINALLY</constant></entry>
353
384
<entry>finally</entry>
354
-
<entry><xref linkend="language.exceptions"/> (available since PHP 5.5.0)</entry>
385
+
<entry><xref linkend="language.exceptions"/></entry>
355
386
</row>
356
-
<row>
387
+
<row xml:id="constant.t-fn">
388
+
<entry><constant>T_FN</constant></entry>
389
+
<entry>fn</entry>
390
+
<entry>
391
+
<link linkend="functions.arrow">arrow functions</link>
392
+
(available as of PHP 7.4.0)
393
+
</entry>
394
+
</row>
395
+
<row xml:id="constant.t-for">
357
396
<entry><constant>T_FOR</constant></entry>
358
397
<entry>for</entry>
359
398
<entry><link linkend="control-structures.for">for</link></entry>
360
399
</row>
361
-
<row>
400
+
<row xml:id="constant.t-foreach">
362
401
<entry><constant>T_FOREACH</constant></entry>
363
402
<entry>foreach</entry>
364
403
<entry>&foreach;</entry>
365
404
</row>
366
-
<row>
405
+
<row xml:id="constant.t-function">
367
406
<entry><constant>T_FUNCTION</constant></entry>
368
-
<entry>function or cfunction</entry>
407
+
<entry>function</entry>
369
408
<entry><link linkend="language.functions">functions</link></entry>
370
409
</row>
371
-
<row>
410
+
<row xml:id="constant.t-func-c">
372
411
<entry><constant>T_FUNC_C</constant></entry>
373
412
<entry>__FUNCTION__</entry>
374
413
<entry>
375
414
<link linkend="language.constants.predefined">magic constants</link>
376
415
</entry>
377
416
</row>
378
-
<row>
417
+
<row xml:id="constant.t-global">
379
418
<entry><constant>T_GLOBAL</constant></entry>
380
419
<entry>global</entry>
381
420
<entry><link linkend="language.variables.scope">variable scope</link></entry>
382
421
</row>
383
-
<row>
422
+
<row xml:id="constant.t-goto">
384
423
<entry><constant>T_GOTO</constant></entry>
385
424
<entry>goto</entry>
386
-
<entry><link linkend="control-structures.goto">goto</link> (available since PHP 5.3.0)</entry>
425
+
<entry><link linkend="control-structures.goto">goto</link></entry>
387
426
</row>
388
-
<row>
427
+
<row xml:id="constant.t-halt-compiler">
389
428
<entry><constant>T_HALT_COMPILER</constant></entry>
390
429
<entry>__halt_compiler()</entry>
391
-
<entry><xref linkend="function.halt-compiler"/> (available since PHP 5.1.0)</entry>
430
+
<entry><xref linkend="function.halt-compiler"/></entry>
392
431
</row>
393
-
<row>
432
+
<row xml:id="constant.t-if">
394
433
<entry><constant>T_IF</constant></entry>
395
434
<entry>if</entry>
396
435
<entry><link linkend="control-structures.if">if</link></entry>
397
436
</row>
398
-
<row>
437
+
<row xml:id="constant.t-implements">
399
438
<entry><constant>T_IMPLEMENTS</constant></entry>
400
439
<entry>implements</entry>
401
440
<entry><xref linkend="language.oop5.interfaces"/></entry>
402
441
</row>
403
-
<row>
442
+
<row xml:id="constant.t-inc">
404
443
<entry><constant>T_INC</constant></entry>
405
444
<entry>++</entry>
406
445
<entry><link
407
446
linkend="language.operators.increment">incrementing/decrementing
408
447
operators</link></entry>
409
448
</row>
410
-
<row>
449
+
<row xml:id="constant.t-include">
411
450
<entry><constant>T_INCLUDE</constant></entry>
412
-
<entry>include()</entry>
451
+
<entry>include</entry>
413
452
<entry><function>include</function></entry>
414
453
</row>
415
-
<row>
454
+
<row xml:id="constant.t-include-once">
416
455
<entry><constant>T_INCLUDE_ONCE</constant></entry>
417
-
<entry>include_once()</entry>
456
+
<entry>include_once</entry>
418
457
<entry><function>include_once</function></entry>
419
458
</row>
420
-
<row>
459
+
<row xml:id="constant.t-inline-html">
421
460
<entry><constant>T_INLINE_HTML</constant></entry>
422
461
<entry></entry>
423
462
<entry><link linkend="language.basic-syntax.phpmode">text outside PHP</link></entry>
424
463
</row>
425
-
<row>
464
+
<row xml:id="constant.t-instanceof">
426
465
<entry><constant>T_INSTANCEOF</constant></entry>
427
466
<entry>instanceof</entry>
428
467
<entry>
429
468
<link linkend="language.operators.type">type operators</link>
430
469
</entry>
431
470
</row>
432
-
<row>
471
+
<row xml:id="constant.t-insteadof">
433
472
<entry><constant>T_INSTEADOF</constant></entry>
434
473
<entry>insteadof</entry>
435
-
<entry><xref linkend="language.oop5.traits"/> (available since PHP 5.4.0)</entry>
474
+
<entry><xref linkend="language.oop5.traits"/></entry>
436
475
</row>
437
-
<row>
438
-
<entry><constant>T_INT_CAST</constant></entry>
439
-
<entry>(int) or (integer)</entry>
440
-
<entry><link linkend="language.types.typecasting">type-casting</link></entry>
441
-
</row>
442
-
<row>
476
+
<row xml:id="constant.t-interface">
443
477
<entry><constant>T_INTERFACE</constant></entry>
444
478
<entry>interface</entry>
445
479
<entry><xref linkend="language.oop5.interfaces"/></entry>
446
480
</row>
447
-
<row>
481
+
<row xml:id="constant.t-int-cast">
482
+
<entry><constant>T_INT_CAST</constant></entry>
483
+
<entry>(int) or (integer)</entry>
484
+
<entry><link linkend="language.types.typecasting">type-casting</link></entry>
485
+
</row>
486
+
<row xml:id="constant.t-isset">
448
487
<entry><constant>T_ISSET</constant></entry>
449
488
<entry>isset()</entry>
450
489
<entry><function>isset</function></entry>
451
490
</row>
452
-
<row>
491
+
<row xml:id="constant.t-is-equal">
453
492
<entry><constant>T_IS_EQUAL</constant></entry>
454
493
<entry>==</entry>
455
494
<entry><link linkend="language.operators.comparison">comparison operators</link></entry>
456
495
</row>
457
-
<row>
496
+
<row xml:id="constant.t-is-greater-or-equal">
458
497
<entry><constant>T_IS_GREATER_OR_EQUAL</constant></entry>
459
498
<entry>&gt;=</entry>
460
499
<entry><link linkend="language.operators.comparison">comparison operators</link></entry>
461
500
</row>
462
-
<row>
501
+
<row xml:id="constant.t-is-identical">
463
502
<entry><constant>T_IS_IDENTICAL</constant></entry>
464
503
<entry>===</entry>
465
504
<entry><link linkend="language.operators.comparison">comparison operators</link></entry>
466
505
</row>
467
-
<row>
506
+
<row xml:id="constant.t-is-not-equal">
468
507
<entry><constant>T_IS_NOT_EQUAL</constant></entry>
469
508
<entry>!= or &lt;&gt;</entry>
470
509
<entry><link linkend="language.operators.comparison">comparison operators</link></entry>
471
510
</row>
472
-
<row>
511
+
<row xml:id="constant.t-is-not-identical">
473
512
<entry><constant>T_IS_NOT_IDENTICAL</constant></entry>
474
513
<entry>!==</entry>
475
514
<entry><link linkend="language.operators.comparison">comparison operators</link></entry>
476
515
</row>
477
-
<row>
516
+
<row xml:id="constant.t-is-smaller-or-equal">
478
517
<entry><constant>T_IS_SMALLER_OR_EQUAL</constant></entry>
479
518
<entry>&lt;=</entry>
480
519
<entry><link linkend="language.operators.comparison">comparison operators</link></entry>
481
520
</row>
482
-
<row>
483
-
<entry><constant>T_SPACESHIP</constant></entry>
484
-
<entry>&lt;=&gt;</entry>
485
-
<entry>
486
-
<link linkend="language.operators.comparison">comparison operators</link>
487
-
(available since PHP 7.0.0)
488
-
</entry>
489
-
</row>
490
-
<row>
521
+
<row xml:id="constant.t-line">
491
522
<entry><constant>T_LINE</constant></entry>
492
523
<entry>__LINE__</entry>
493
524
<entry><link linkend="language.constants.predefined">magic constants</link></entry>
494
525
</row>
495
-
<row>
526
+
<row xml:id="constant.t-list">
496
527
<entry><constant>T_LIST</constant></entry>
497
528
<entry>list()</entry>
498
529
<entry><function>list</function></entry>
499
530
</row>
500
-
<row>
531
+
<row xml:id="constant.t-lnumber">
501
532
<entry><constant>T_LNUMBER</constant></entry>
502
533
<entry>123, 012, 0x1ac, etc.</entry>
503
534
<entry><link linkend="language.types.integer">integers</link></entry>
504
535
</row>
505
-
<row>
536
+
<row xml:id="constant.t-logical-and">
506
537
<entry><constant>T_LOGICAL_AND</constant></entry>
507
538
<entry>and</entry>
508
539
<entry><link linkend="language.operators.logical">logical operators</link></entry>
509
540
</row>
510
-
<row>
541
+
<row xml:id="constant.t-logical-or">
511
542
<entry><constant>T_LOGICAL_OR</constant></entry>
512
543
<entry>or</entry>
513
544
<entry><link linkend="language.operators.logical">logical operators</link></entry>
514
545
</row>
515
-
<row>
546
+
<row xml:id="constant.t-logical-xor">
516
547
<entry><constant>T_LOGICAL_XOR</constant></entry>
517
548
<entry>xor</entry>
518
549
<entry><link linkend="language.operators.logical">logical operators</link></entry>
519
550
</row>
520
-
<row>
551
+
<row xml:id="constant.t-match">
552
+
<entry><constant>T_MATCH</constant></entry>
553
+
<entry>match</entry>
554
+
<entry>
555
+
&match; (available as of PHP 8.0.0)
556
+
</entry>
557
+
</row>
558
+
<row xml:id="constant.t-method-c">
521
559
<entry><constant>T_METHOD_C</constant></entry>
522
560
<entry>__METHOD__</entry>
523
561
<entry>
524
562
<link linkend="language.constants.predefined">magic constants</link>
525
563
</entry>
526
564
</row>
527
-
<row>
565
+
<row xml:id="constant.t-minus-equal">
528
566
<entry><constant>T_MINUS_EQUAL</constant></entry>
529
567
<entry>-=</entry>
530
568
<entry><link linkend="language.operators.assignment">assignment
531
569
operators</link></entry>
532
570
</row>
533
-
<row>
571
+
<row xml:id="constant.t-mod-equal">
534
572
<entry><constant>T_MOD_EQUAL</constant></entry>
535
573
<entry>%=</entry>
536
574
<entry><link linkend="language.operators.assignment">assignment
537
575
operators</link></entry>
538
576
</row>
539
-
<row>
577
+
<row xml:id="constant.t-mul-equal">
540
578
<entry><constant>T_MUL_EQUAL</constant></entry>
541
579
<entry>*=</entry>
542
580
<entry><link linkend="language.operators.assignment">assignment
543
581
operators</link></entry>
544
582
</row>
545
-
<row>
583
+
<row xml:id="constant.t-namespace">
546
584
<entry><constant>T_NAMESPACE</constant></entry>
547
585
<entry>namespace</entry>
548
586
<entry>
549
-
<link linkend="language.namespaces">namespaces</link> (available since PHP
550
-
5.3.0)
587
+
<link linkend="language.namespaces">namespaces</link>
551
588
</entry>
552
589
</row>
553
-
<row>
590
+
<row xml:id="constant.t-name-fully-qualified">
591
+
<entry><constant>T_NAME_FULLY_QUALIFIED</constant></entry>
592
+
<entry>\App\Namespace</entry>
593
+
<entry>
594
+
<link linkend="language.namespaces">namespaces</link> (available as of PHP 8.0.0)
595
+
</entry>
596
+
</row>
597
+
<row xml:id="constant.t-name-qualified">
598
+
<entry><constant>T_NAME_QUALIFIED</constant></entry>
599
+
<entry>App\Namespace</entry>
600
+
<entry>
601
+
<link linkend="language.namespaces">namespaces</link> (available as of PHP 8.0.0)
602
+
</entry>
603
+
</row>
604
+
<row xml:id="constant.t-name-relative">
605
+
<entry><constant>T_NAME_RELATIVE</constant></entry>
606
+
<entry>namespace\Namespace</entry>
607
+
<entry>
608
+
<link linkend="language.namespaces">namespaces</link> (available as of PHP 8.0.0)
609
+
</entry>
610
+
</row>
611
+
<row xml:id="constant.t-new">
612
+
<entry><constant>T_NEW</constant></entry>
613
+
<entry>new</entry>
614
+
<entry><link linkend="language.oop5">classes and objects</link></entry>
615
+
</row>
616
+
<row xml:id="constant.t-ns-c">
554
617
<entry><constant>T_NS_C</constant></entry>
555
618
<entry>__NAMESPACE__</entry>
556
619
<entry>
557
620
<link linkend="language.namespaces">namespaces</link>
558
-
(available since PHP 5.3.0)
559
621
</entry>
560
622
</row>
561
-
<row>
623
+
<row xml:id="constant.t-ns-separator">
562
624
<entry><constant>T_NS_SEPARATOR</constant></entry>
563
625
<entry>\</entry>
564
626
<entry>
565
627
<link linkend="language.namespaces">namespaces</link>
566
-
(available since PHP 5.3.0)
567
628
</entry>
568
629
</row>
569
-
<row>
570
-
<entry><constant>T_NEW</constant></entry>
571
-
<entry>new</entry>
572
-
<entry><link linkend="language.oop5">classes and objects</link></entry>
573
-
</row>
574
-
<row>
630
+
<row xml:id="constant.t-num-string">
575
631
<entry><constant>T_NUM_STRING</constant></entry>
576
632
<entry>"$a[0]"</entry>
577
633
<entry><link linkend="language.types.string.parsing">numeric array index
578
634
inside string</link></entry>
579
635
</row>
580
-
<row>
636
+
<row xml:id="constant.t-object-cast">
581
637
<entry><constant>T_OBJECT_CAST</constant></entry>
582
638
<entry>(object)</entry>
583
639
<entry><link linkend="language.types.typecasting">type-casting</link></entry>
584
640
</row>
585
-
<row>
641
+
<row xml:id="constant.t-object-operator">
586
642
<entry><constant>T_OBJECT_OPERATOR</constant></entry>
587
643
<entry>-&gt;</entry>
588
644
<entry><link linkend="language.oop5">classes and objects</link></entry>
589
645
</row>
590
-
<row>
646
+
<row xml:id="constant.t-nullsafe-object-operator">
647
+
<entry><constant>T_NULLSAFE_OBJECT_OPERATOR</constant></entry>
648
+
<entry>?-&gt;</entry>
649
+
<entry><link linkend="language.oop5">classes and objects</link></entry>
650
+
</row>
651
+
<row xml:id="constant.t-open-tag">
591
652
<entry><constant>T_OPEN_TAG</constant></entry>
592
653
<entry>&lt;?php, &lt;? or &lt;%</entry>
593
654
<entry><link linkend="language.basic-syntax.phpmode">escaping
594
655
from HTML</link></entry>
595
656
</row>
596
-
<row>
657
+
<row xml:id="constant.t-open-tag-with-echo">
597
658
<entry><constant>T_OPEN_TAG_WITH_ECHO</constant></entry>
598
659
<entry>&lt;?= or &lt;%=</entry>
599
660
<entry><link linkend="language.basic-syntax.phpmode">escaping
600
661
from HTML</link></entry>
601
662
</row>
602
-
<row>
663
+
<row xml:id="constant.t-or-equal">
603
664
<entry><constant>T_OR_EQUAL</constant></entry>
604
665
<entry>|=</entry>
605
666
<entry><link linkend="language.operators.assignment">assignment
606
667
operators</link></entry>
607
668
</row>
608
-
<row>
669
+
<row xml:id="constant.t-paamayim-nekudotayim">
609
670
<entry><constant>T_PAAMAYIM_NEKUDOTAYIM</constant></entry>
610
671
<entry>::</entry>
611
672
<entry><link linkend="language.oop5.paamayim-nekudotayim">::</link>. Also defined as
612
673
<constant>T_DOUBLE_COLON</constant>.</entry>
613
674
</row>
614
-
<row>
675
+
<row xml:id="constant.t-plus-equal">
615
676
<entry><constant>T_PLUS_EQUAL</constant></entry>
616
677
<entry>+=</entry>
617
678
<entry><link linkend="language.operators.assignment">assignment
618
679
operators</link></entry>
619
680
</row>
620
-
<row>
681
+
<row xml:id="constant.t-pow">
621
682
<entry><constant>T_POW</constant></entry>
622
683
<entry>**</entry>
623
684
<entry>
624
685
<link linkend="language.operators.arithmetic">arithmetic operators</link>
625
-
(available since PHP 5.6.0)
626
686
</entry>
627
687
</row>
628
-
<row>
688
+
<row xml:id="constant.t-pow-equal">
629
689
<entry><constant>T_POW_EQUAL</constant></entry>
630
690
<entry>**=</entry>
631
691
<entry>
632
692
<link linkend="language.operators.assignment">assignment operators</link>
633
-
(available since PHP 5.6.0)
634
693
</entry>
635
694
</row>
636
-
<row>
695
+
<row xml:id="constant.t-print">
637
696
<entry><constant>T_PRINT</constant></entry>
638
-
<entry>print()</entry>
697
+
<entry>print</entry>
639
698
<entry><function>print</function></entry>
640
699
</row>
641
-
<row>
700
+
<row xml:id="constant.t-private">
642
701
<entry><constant>T_PRIVATE</constant></entry>
643
702
<entry>private</entry>
644
703
<entry>
645
704
<link linkend="language.oop5">classes and objects</link>
646
705
</entry>
647
706
</row>
648
-
<row>
707
+
<row xml:id="constant.t-protected">
708
+
<entry><constant>T_PROTECTED</constant></entry>
709
+
<entry>protected</entry>
710
+
<entry>
711
+
<link linkend="language.oop5">classes and objects</link>
712
+
</entry>
713
+
</row>
714
+
<row xml:id="constant.t-public">
649
715
<entry><constant>T_PUBLIC</constant></entry>
650
716
<entry>public</entry>
651
717
<entry>
652
718
<link linkend="language.oop5">classes and objects</link>
653
719
</entry>
654
720
</row>
655
-
<row>
656
-
<entry><constant>T_PROTECTED</constant></entry>
657
-
<entry>protected</entry>
721
+
<row xml:id="constant.t-readonly">
722
+
<entry><constant>T_READONLY</constant></entry>
723
+
<entry>readonly</entry>
658
724
<entry>
659
-
<link linkend="language.oop5">classes and objects</link>
725
+
<link linkend="language.oop5">classes and objects</link> (available as of PHP 8.1.0)
660
726
</entry>
661
727
</row>
662
-
<row>
728
+
<row xml:id="constant.t-require">
663
729
<entry><constant>T_REQUIRE</constant></entry>
664
-
<entry>require()</entry>
730
+
<entry>require</entry>
665
731
<entry><function>require</function></entry>
666
732
</row>
667
-
<row>
733
+
<row xml:id="constant.t-require-once">
668
734
<entry><constant>T_REQUIRE_ONCE</constant></entry>
669
-
<entry>require_once()</entry>
735
+
<entry>require_once</entry>
670
736
<entry><function>require_once</function></entry>
671
737
</row>
672
-
<row>
738
+
<row xml:id="constant.t-return">
673
739
<entry><constant>T_RETURN</constant></entry>
674
740
<entry>return</entry>
675
741
<entry><link linkend="functions.returning-values">returning values</link></entry>
676
742
</row>
677
-
<row>
743
+
<row xml:id="constant.t-sl">
678
744
<entry><constant>T_SL</constant></entry>
679
745
<entry>&lt;&lt;</entry>
680
746
<entry><link linkend="language.operators.bitwise">bitwise
681
747
operators</link></entry>
682
748
</row>
683
-
<row>
749
+
<row xml:id="constant.t-sl-equal">
684
750
<entry><constant>T_SL_EQUAL</constant></entry>
685
751
<entry>&lt;&lt;=</entry>
686
752
<entry><link linkend="language.operators.assignment">assignment
687
753
operators</link></entry>
688
754
</row>
689
-
<row>
755
+
<row xml:id="constant.t-spaceship">
756
+
<entry><constant>T_SPACESHIP</constant></entry>
757
+
<entry>&lt;=&gt;</entry>
758
+
<entry>
759
+
<link linkend="language.operators.comparison">comparison operators</link>
760
+
</entry>
761
+
</row>
762
+
<row xml:id="constant.t-sr">
690
763
<entry><constant>T_SR</constant></entry>
691
764
<entry>&gt;&gt;</entry>
692
765
<entry><link linkend="language.operators.bitwise">bitwise
693
766
operators</link></entry>
694
767
</row>
695
-
<row>
768
+
<row xml:id="constant.t-sr-equal">
696
769
<entry><constant>T_SR_EQUAL</constant></entry>
697
770
<entry>&gt;&gt;=</entry>
698
771
<entry><link linkend="language.operators.assignment">assignment
699
772
operators</link></entry>
700
773
</row>
701
-
<row>
774
+
<row xml:id="constant.t-start-heredoc">
702
775
<entry><constant>T_START_HEREDOC</constant></entry>
703
776
<entry>&lt;&lt;&lt;</entry>
704
777
<entry><link linkend="language.types.string.syntax.heredoc">heredoc
705
778
syntax</link></entry>
706
779
</row>
707
-
<row>
780
+
<row xml:id="constant.t-static">
708
781
<entry><constant>T_STATIC</constant></entry>
709
782
<entry>static</entry>
710
783
<entry><link linkend="language.variables.scope">variable scope</link></entry>
711
784
</row>
712
-
<row>
785
+
<row xml:id="constant.t-string">
713
786
<entry><constant>T_STRING</constant></entry>
714
787
<entry>parent, self, etc.</entry>
715
788
<entry>
...
...
@@ -718,94 +791,93 @@
718
791
See also <constant>T_CONSTANT_ENCAPSED_STRING</constant>.
719
792
</entry>
720
793
</row>
721
-
<row>
794
+
<row xml:id="constant.t-string-cast">
722
795
<entry><constant>T_STRING_CAST</constant></entry>
723
796
<entry>(string)</entry>
724
797
<entry><link linkend="language.types.typecasting">type-casting</link></entry>
725
798
</row>
726
-
<row>
799
+
<row xml:id="constant.t-string-varname">
727
800
<entry><constant>T_STRING_VARNAME</constant></entry>
728
801
<entry>"${a</entry>
729
802
<entry><link linkend="language.types.string.parsing.complex">complex
730
803
variable parsed syntax</link></entry>
731
804
</row>
732
-
<row>
805
+
<row xml:id="constant.t-switch">
733
806
<entry><constant>T_SWITCH</constant></entry>
734
807
<entry>switch</entry>
735
808
<entry><link linkend="control-structures.switch">switch</link></entry>
736
809
</row>
737
-
<row>
810
+
<row xml:id="constant.t-throw">
738
811
<entry><constant>T_THROW</constant></entry>
739
812
<entry>throw</entry>
740
813
<entry><xref linkend="language.exceptions"/></entry>
741
814
</row>
742
-
<row>
815
+
<row xml:id="constant.t-trait">
743
816
<entry><constant>T_TRAIT</constant></entry>
744
817
<entry>trait</entry>
745
-
<entry><xref linkend="language.oop5.traits"/> (available since PHP 5.4.0)</entry>
818
+
<entry><xref linkend="language.oop5.traits"/></entry>
746
819
</row>
747
-
<row>
820
+
<row xml:id="constant.t-trait-c">
748
821
<entry><constant>T_TRAIT_C</constant></entry>
749
822
<entry>__TRAIT__</entry>
750
-
<entry><link linkend="constant.trait">__TRAIT__</link> (available since PHP 5.4.0)</entry>
823
+
<entry><constant>__TRAIT__</constant></entry>
751
824
</row>
752
-
<row>
825
+
<row xml:id="constant.t-try">
753
826
<entry><constant>T_TRY</constant></entry>
754
827
<entry>try</entry>
755
828
<entry><xref linkend="language.exceptions"/></entry>
756
829
</row>
757
-
<row>
830
+
<row xml:id="constant.t-unset">
758
831
<entry><constant>T_UNSET</constant></entry>
759
832
<entry>unset()</entry>
760
833
<entry><function>unset</function></entry>
761
834
</row>
762
-
<row>
835
+
<row xml:id="constant.t-unset-cast">
763
836
<entry><constant>T_UNSET_CAST</constant></entry>
764
837
<entry>(unset)</entry>
765
838
<entry><link linkend="language.types.typecasting">type-casting</link></entry>
766
839
</row>
767
-
<row>
840
+
<row xml:id="constant.t-use">
768
841
<entry><constant>T_USE</constant></entry>
769
842
<entry>use</entry>
770
-
<entry><link linkend="language.namespaces">namespaces</link>
771
-
(available since PHP 5.3.0)</entry>
843
+
<entry><link linkend="language.namespaces">namespaces</link></entry>
772
844
</row>
773
-
<row>
845
+
<row xml:id="constant.t-var">
774
846
<entry><constant>T_VAR</constant></entry>
775
847
<entry>var</entry>
776
848
<entry><link linkend="language.oop5">classes and objects</link></entry>
777
849
</row>
778
-
<row>
850
+
<row xml:id="constant.t-variable">
779
851
<entry><constant>T_VARIABLE</constant></entry>
780
852
<entry>$foo</entry>
781
853
<entry><link linkend="language.variables">variables</link></entry>
782
854
</row>
783
-
<row>
855
+
<row xml:id="constant.t-while">
784
856
<entry><constant>T_WHILE</constant></entry>
785
857
<entry>while</entry>
786
858
<entry><link linkend="control-structures.while">while</link>, <link
787
859
linkend="control-structures.do.while">do..while</link></entry>
788
860
</row>
789
-
<row>
861
+
<row xml:id="constant.t-whitespace">
790
862
<entry><constant>T_WHITESPACE</constant></entry>
791
863
<entry>\t \r\n</entry>
792
864
<entry></entry>
793
865
</row>
794
-
<row>
866
+
<row xml:id="constant.t-xor-equal">
795
867
<entry><constant>T_XOR_EQUAL</constant></entry>
796
868
<entry>^=</entry>
797
869
<entry><link linkend="language.operators.assignment">assignment
798
870
operators</link></entry>
799
871
</row>
800
-
<row>
872
+
<row xml:id="constant.t-yield">
801
873
<entry><constant>T_YIELD</constant></entry>
802
874
<entry>yield</entry>
803
-
<entry><link linkend="control-structures.yield">generators</link> (available since PHP 5.5.0)</entry>
875
+
<entry><link linkend="control-structures.yield">generators</link></entry>
804
876
</row>
805
-
<row>
877
+
<row xml:id="constant.t-yield-from">
806
878
<entry><constant>T_YIELD_FROM</constant></entry>
807
879
<entry>yield from</entry>
808
-
<entry><link linkend="control-structures.yield.from">generators</link> (available since PHP 7.0.0)</entry>
880
+
<entry><link linkend="control-structures.yield.from">generators</link></entry>
809
881
</row>
810
882
</tbody>
811
883
</tgroup>
812
884