gpt4 book ai didi

php - php文件函数列表

转载 作者:可可西里 更新时间:2023-10-31 22:53:13 26 4
gpt4 key购买 nike

如何获取在 php 文件中声明的函数列表

最佳答案

您可以使用get_defined_functions() 获取当前定义函数的列表。 :

$arr = get_defined_functions();
var_dump($arr['user']);

内部函数位于索引 internal 而用户定义函数位于索引 user

请注意,这将输出在该调用之前声明的所有函数。这意味着如果你 include()具有功能的文件,那些也将在列表中。除了确保你没有 include() 之外,没有办法将每个文件的函数分开。调用 get_defined_functions() 之前的任何文件.


如果您必须为每个文件提供函数列表,则以下将尝试通过解析源代码来检索函数列表。

function get_defined_functions_in_file($file) {
$source = file_get_contents($file);
$tokens = token_get_all($source);

$functions = array();
$nextStringIsFunc = false;
$inClass = false;
$bracesCount = 0;

foreach($tokens as $token) {
switch($token[0]) {
case T_CLASS:
$inClass = true;
break;
case T_FUNCTION:
if(!$inClass) $nextStringIsFunc = true;
break;

case T_STRING:
if($nextStringIsFunc) {
$nextStringIsFunc = false;
$functions[] = $token[1];
}
break;

// Anonymous functions
case '(':
case ';':
$nextStringIsFunc = false;
break;

// Exclude Classes
case '{':
if($inClass) $bracesCount++;
break;

case '}':
if($inClass) {
$bracesCount--;
if($bracesCount === 0) $inClass = false;
}
break;
}
}

return $functions;
}

使用风险自负。

关于php - php文件函数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2197851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com