当前位置: 首页> 最新文章列表> [怎样用 get_defined_functions 列出所有 PHP 内置函数和自定义函数?

[怎样用 get_defined_functions 列出所有 PHP 内置函数和自定义函数?

gitbox 2025-08-22

怎样用 get_defined_functions 列出所有 PHP 内置函数和自定义函数?

在 PHP 中,内置函数是预先定义好的函数,用户无需编写即可直接使用。而自定义函数是用户根据需求编写的函数。如果你想要列出 PHP 中所有的内置函数和自定义函数,可以利用 PHP 提供的 get_defined_functions 函数。这个函数不仅能够列出 PHP 当前环境中的所有已定义函数,还能够将这些函数分为内置函数和用户自定义函数两个类别。

1. get_defined_functions 函数介绍

get_defined_functions 是一个 PHP 内置函数,它会返回一个包含所有已定义函数的数组。这个数组有两个键:

  • internal:包含所有内置函数的数组。

  • user:包含所有用户自定义函数的数组。

该函数没有参数,调用时会返回一个多维数组,方便开发者查看所有函数的定义情况。

2. 如何使用 get_defined_functions 列出函数

你可以直接使用 get_defined_functions 来获取所有函数的列表。以下是一个示例代码,展示了如何列出内置函数和自定义函数。

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 自定义一个简单函数</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">my_custom_function</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
}

</span><span><span class="hljs-comment">// 获取所有已定义的函数</span></span><span>
</span><span><span class="hljs-variable">$defined_functions</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_defined_functions</span></span><span>();

</span><span><span class="hljs-comment">// 列出内置函数</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"内置函数:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$defined_functions</span></span><span>[</span><span><span class="hljs-string">'internal'</span></span><span>]);

</span><span><span class="hljs-comment">// 列出自定义函数</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n自定义函数:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$defined_functions</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>]);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

在这个例子中,我们首先自定义了一个简单的函数 my_custom_function,然后调用 get_defined_functions 来获取当前环境中的所有函数。通过打印数组,我们能够清楚地看到内置函数和自定义函数的区别。

3. 输出解释

当你运行上面的代码时,输出的结果大致如下:

<span><span>内置函数:
Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; abs
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; acos
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; acosh
    ...
)

自定义函数:
Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; my_custom_function
)
</span></span>

如上所示,get_defined_functions 会将所有内置函数列出在 internal 数组中,而将我们自定义的函数 my_custom_function 列出在 user 数组中。

4. 注意事项

  • get_defined_functions 只会列出当前脚本中已定义的函数,包括在当前作用域内的函数。对于从外部文件引入的函数(比如通过 includerequire 引入的文件中的函数),如果这些文件在当前脚本执行前已被加载,函数也会被列出。

  • 如果你有大量自定义函数,get_defined_functions 会非常有用,尤其是在调试和文档生成的场景中。

5. 总结

get_defined_functions 是一个非常实用的函数,可以帮助开发者快速列出 PHP 环境中所有已定义的函数。通过它,我们可以轻松区分内置函数和自定义函数,帮助更好地管理和调试 PHP 代码。