token_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

token_get_allBelirtilen kaynağı PHP dizgeciklerine ayırır

Açıklama

token_get_all(string$kod, int$seçenekler = 0): array

Belirtilen kod dizgesi, Zend motorunun sözdizimsel tarayıcısı kullanılarak PHP dil dizgeciklerine çözümlenir.

Dizgeciklerin listesi için Çözümleyici Dizgeciklerinin Listesi sayfasına bakınız veya bir dizgecik değerini dizgesel gösterimine dönüştürmek için token_name() işlevini kullanınız.

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('');

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 ('')
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
To Top