PHP - 詞法分析器 token_name() 函式



PHP 詞法分析器token_name()函式用於獲取令牌的名稱。令牌是程式語言的最小單元,例如關鍵字、運算子和識別符號。此函式透過為每個值返回人類可讀的名稱來幫助識別這些令牌。

語法

以下是 PHP 詞法分析器token_name()函式的語法:

string token_name(int $id)

引數

此函式接受$id引數,它是您想要知道名稱的令牌的數值。

返回值

token_name()函式返回給定 id 的符號名稱。

PHP 版本

token_name()函式首次引入到 PHP 4.2.0 的核心版本中,並在 PHP 5、PHP 7 和 PHP 8 中繼續輕鬆執行。

示例 1

首先,我們將向您展示 PHP 詞法分析器token_name()函式的基本示例,以獲取令牌的名稱。

<?php
   // Here 260 is the token value
   echo token_name(260). "\n"; 
   
   // A constant token corresponds to its own name.
   echo token_name(T_FUNCTION); 
?>

輸出

執行上述程式後,它會生成以下輸出:

T_LNUMBER
T_FUNCTION

示例 2

在下面的示例中,我們將向您展示如何將token_name()token_get_all()一起使用來標記一小段 PHP 程式碼並列印令牌名稱。

   <?php
   // Define a block of PHP code
   $code = '<?php echo $hello; ?>';
   $tokens = token_get_all($code);
   
   foreach ($tokens as $token) {
      if (is_array($token)) {
         echo token_name($token[0]) . ': ' . $token[1] . "\n";
      } else {
         echo $token . "\n";
      }
   }
   ?> 

輸出

以上程式碼將產生類似於以下的結果:

T_OPEN_TAG: <?php 
T_ECHO: echo
T_WHITESPACE:  
T_VARIABLE: $hello
;
T_WHITESPACE:  
T_CLOSE_TAG: ?>

示例 3

現在,以下程式碼用於標記 PHP 函式定義並使用token_name()函式獲取令牌的名稱。

<?php
   // Define a PHP code block here
   $code = '<?php function greet() { echo "Hello, World!"; } ?>';
   $tokens = token_get_all($code);
   
   foreach ($tokens as $token) {
       if (is_array($token)) {
           echo token_name($token[0]) . ': ' . $token[1] . "\n";
       } else {
           echo $token . "\n";
       }
   }
?> 

輸出

這將建立以下輸出:

T_OPEN_TAG: <?php 
T_FUNCTION: function
T_WHITESPACE:  
T_STRING: greet
(
)
T_WHITESPACE:  
{
T_WHITESPACE:  
T_ECHO: echo
T_WHITESPACE:  
T_CONSTANT_ENCAPSED_STRING: "Hello, World!"
;
T_WHITESPACE:  
}
T_WHITESPACE:  
T_CLOSE_TAG: ?>

示例 4

此示例顯示如何標記 PHP 類定義並使用token_name()函式列印令牌名稱。

<?php
   // Define a PHP code block here
   $code = '<?php class MyClass { private $var; function myMethod() {} } ?>';
   $tokens = token_get_all($code);
   
   foreach ($tokens as $token) {
       if (is_array($token)) {
           echo token_name($token[0]) . ': ' . $token[1] . "\n";
       } else {
           echo $token . "\n";
       }
   }
?> 

輸出

執行上述程式後,將產生以下輸出:

T_OPEN_TAG: <?php 
T_CLASS: class
T_WHITESPACE:  
T_STRING: MyClass
T_WHITESPACE:  
{
T_WHITESPACE:  
T_PRIVATE: private
T_WHITESPACE:  
T_VARIABLE: $var
;
T_WHITESPACE:  
T_FUNCTION: function
T_WHITESPACE:  
T_STRING: myMethod
(
)
T_WHITESPACE:  
{
}
T_WHITESPACE:  
}
T_WHITESPACE:  
T_CLOSE_TAG: ?>
php_function_reference.htm
廣告