所有已定义函数名称的php列表包含或以特定字符串

时间:2016-12-07 09:53:50

标签: php

我需要一个所有已定义函数的列表,它在函数名中有一个特定的字符串

示例: 我希望我的文件中的所有函数都有函数名中的"special_pdf"字符串,如 -

special_pdf_a4()
special_pdf_a5()
special_pdf_16()
special_pdf_97()
special_pdf_same_same_example()

目前正在使用此代码 -

$commandList = get_defined_functions();
$funcList = array();
$containText = 'special_pdf';
if(isset($commandList['user'])){
    $user_defined_functions = $commandList['user'];
    foreach($user_defined_functions as $user_defined_function){
        if(substr($user_defined_function, 0, strlen($containText)) === $containText){
            $funcList[] = $user_defined_function;
        }
    }
}
print_r($funcList);

找出没有性能缺陷的正确方法吗?

1 个答案:

答案 0 :(得分:0)

快速可能就是这个解决方案

$funcs = get_defined_functions();
if(isset($funcs['user']) {
    funcList = preg_grep('/special_pdf.*/',$funcs['user']);
    print_r($funcList);
}

根据您的需要,您可能需要玩一点正则表达式。