首页 > 解决方案 > 如何使用 Nikic/PHPParser 获取变量值

问题描述

我有以下 PHP 代码文件:

<?php
class ObjectTest extends AppTest
{
    public function getList()
    {
        return [
            '1234',
            '5678',
        ];
    }
}

现在喜欢用nikic/PHP-Parser来获取getList函数的返回值

我怎么做?

标签: phpphp-parser

解决方案


以下将做到这一点:

$parser = (new ParserFactory())->create(ParserFactory::PREFER_PHP7);

try {
    $ast = $parser->parse($code);
} catch (Error $error) {
    // Handle error...
}

$class = $ast[0];

$method = $class->getMethod('getList');

$returnStatement = $method->getStmts()[0];

$returnedValues = array_map(fn($item) => $item->value->value, $returnStatement->expr->items);

print_r($returnedValues);  // [1234, 5678]

演示


推荐阅读