2

我想计算 PHP 源代码中的大括号,所以我最终可以在给定的源代码中找到方法/函数的结尾。

有人建议我使用该token_get_all()功能来完成这项工作。但由于某种原因,它没有将给定的源拆分为令牌。

我正在使用以下代码对其进行测试:

<?php
$str = 'class someClass{
    public $var1;
    private $var2 = null;

    public function func1 ( $someVar )
    {
        echo $someVar;
    }

    public function func2 ( )
    {
        return false;
    }
}';

$bla = token_get_all ( $str );

echo '<pre>';
print_r ( $bla );
echo '</pre>';
?>

但这会导致:

Array
(
    [0] => 311
    [1] => class someClass{
    public $var1;
    private $var2 = null;

    public function func1 ( $someVar )
    {
        echo $someVar;
    }

    public function func2 ( )
    {
        return false;
    }
}
    [2] => 1
)

所以现在我有点坚持这个。为什么不token_get_all()标记给定的源代码..?

4

1 回答 1

2

因为解析器在 HTML 上下文中启动(就像 PHP 本身一样),所以您传递给的整个字符串token_get_all实际上是一个 HTML 标记。您需要<?php$str.

于 2012-11-18T14:54:19.897 回答