gpt4 book ai didi

php - 解析 PHP 中的类、函数和参数

转载 作者:可可西里 更新时间:2023-11-01 13:14:09 29 4
gpt4 key购买 nike

我想创建一个函数,它接收一个包含 PHP 文件路径的参数,然后解析给定的文件并返回如下内容:

class NameOfTheClass
function Method1($arg1, $arg2, $arg2)
private function Method2($arg1, $arg2, $arg2)
public function Method2($arg1, $arg2, $arg2)

abstract class AnotherClass
function Method1($arg1, $arg2, $arg2)
private function Method2($arg1, $arg2, $arg2)
public function Method2($arg1, $arg2, $arg2)

function SomeFunction($arg1, $arg2, $arg3)

此函数应返回给定文件中存在的所有类、方法和函数,以及所有已定义的标识符(抽象、公共(public)、私有(private)、 protected 、静态、扩展、接口(interface)...)。

我的第一个想法是使用正则表达式来执行此操作,但是这些对于注释的表现非常糟糕,即:/* 此函数返回(max(salary))*/如果我想正确支持范围,它会变得非常复杂。

另一种可能的解决方案是使用以下内置 PHP 函数:

get_declared_classes
get_declared_interfaces
get_defined_functions
get_class_methods

但是这些函数不允许我查看定义类/方法/函数的文件,因此它不是很有用。

我相信 Tokenizer 扩展可以解决我的问题,但是我以前从未使用过这个扩展。

最佳答案

如果您使用的是 PHP 5,则 Reflection API是你的工具。

例子:

$class = new ReflectionClass("NameOfTheClass");
$methods = $class->getMethods();
foreach($methods as $m) {
print $m->name;
$m->isPrivate() ? print "Private" : print "";
$m->isPublic() ? print "Public" : print "";
$params = $m->getParameters();
foreach($params as $p) {
print $p->getName();
}
}

关于php - 解析 PHP 中的类、函数和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1414946/

29 4 0
文章推荐: php - 为我的服务器上的 GD 库调整图像太大
文章推荐: javascript - onmouseup 事件未触发
文章推荐: PHP - 替换图像中的颜色
文章推荐: html -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com