(PHP 8)
PhpToken::is β ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠΎΠΊΠ΅Π½ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΠΈΠΏΡ
ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠΎΠΊΠ΅Π½ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΠΈΠΏΡ kind.
kindΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΠΎΠΊΠ΅Π½Π°, Π»ΠΈΠ±ΠΎ Π΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΠ°ΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PhpToken::is()
<?php
$token = new PhpToken(T_ECHO, 'echo');
var_dump($token->is(T_ECHO)); // -> bool(true)
var_dump($token->is('echo')); // -> bool(true)
var_dump($token->is(T_FOREACH)); // -> bool(false)
var_dump($token->is('foreach')); // -> bool(false)ΠΡΠΈΠΌΠ΅Ρ #2 ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ
<?php
function isClassType(PhpToken $token): bool {
return $token->is([T_CLASS, T_INTERFACE, T_TRAIT]);
}
$interface = new PhpToken(T_INTERFACE, 'interface');
var_dump(isClassType($interface)); // -> bool(true)
$function = new PhpToken(T_FUNCTION, 'function');
var_dump(isClassType($function)); // -> bool(false)