token_get_all
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
token_get_all — Belirtilen kaynağı PHP dizgeciklerine ayırır
Bağımsız Değişkenler
kod
-
Çözümlenecek PHP kaynak kodu.
seçenekler
-
Geçerli seçenekler:
-
TOKEN_PARSE
- Belirli bağlamlarda dahili
kullanıma ayrılmış sözcükleri kullanma yeteneğini onaylar.
Dönen Değerler
Dizgecik betimleyicilerinden oluşan bir dizi. Her dizgecik betimleyicisi
ya tek bir karakterden (;
, .
,
>
, !
gibi) oluşur ya da üç
elemanlı bir diziden; 0. elemanda dizgecik indisi, 1. elemanda özgün
dizgeciğin dizgesel içeriği ve 2. elemanda satır numarası bulunur.
Örnekler
Örnek 1 - token_get_all() örneği
<?php
$tokens = token_get_all('<?php echo; ?>');
foreach ($tokens as $token) {
if (is_array($token)) {
echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')
Örnek 2 - token_get_all() yanlış kullanım örneği
<?php
$tokens = token_get_all('/* comment */');
foreach ($tokens as $token) {
if (is_array($token)) {
echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
Line 1: T_INLINE_HTML ('/* comment */')
Yukarıdaki örnekte dizge beklendiği gibi
T_COMMENT
ile değil
T_INLINE_HTML
ile çözümlenmiştir.Bunun
sebebi sağlanan kodda hiç başlangıç etiketi bulunmamasıdır. Bu, normal
bir dosyada PHP etiketlerinin dışına bir açıklama koymaya eşdeğerdir.
Örnek 3 -
Dahili kullanıma ayrılmış sözcük kullanan sınıf üzerinde
token_get_all()
<?php
$source = <<<'code'
<?php
class A
{
const PUBLIC = 1;
}
code;
$tokens = token_get_all($source, TOKEN_PARSE);
foreach ($tokens as $token) {
if (is_array($token)) {
echo token_name($token[0]) , PHP_EOL;
}
}
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
T_OPEN_TAG
T_WHITESPACE
T_CLASS
T_WHITESPACE
T_STRING
T_CONST
T_WHITESPACE
T_STRING
T_LNUMBER
TOKEN_PARSE
olmaksızın, sondan bir önceki
simgeleştirici (
T_STRING
)
T_PUBLIC
olurdu.
Ayrıca Bakınız
- PhpToken::tokenize() - Belirtilen kaynağı PhpToken nesneleri tarafından temsil edilen PHP dizgeciklerine böler
- token_name() - Belirtilen PHP dizgeciğinin simgesel ismini döndürür