appendices/tokens.xml
a124543dd3f6b1e5567b07420d23899e582514dc
...
...
@@ -4,30 +4,39 @@
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
+
]]>
39
+
</programlisting>
31
40
</para>
32
41
</note>
33
42

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