在 PHP 中,内置函数是预先定义好的函数,用户无需编写即可直接使用。而自定义函数是用户根据需求编写的函数。如果你想要列出 PHP 中所有的内置函数和自定义函数,可以利用 PHP 提供的 get_defined_functions 函数。这个函数不仅能够列出 PHP 当前环境中的所有已定义函数,还能够将这些函数分为内置函数和用户自定义函数两个类别。
get_defined_functions 是一个 PHP 内置函数,它会返回一个包含所有已定义函数的数组。这个数组有两个键:
internal:包含所有内置函数的数组。
user:包含所有用户自定义函数的数组。
该函数没有参数,调用时会返回一个多维数组,方便开发者查看所有函数的定义情况。
你可以直接使用 get_defined_functions 来获取所有函数的列表。以下是一个示例代码,展示了如何列出内置函数和自定义函数。
<span><span><span class="hljs-meta"><?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">?></span></span><span>
</span></span>
在这个例子中,我们首先自定义了一个简单的函数 my_custom_function,然后调用 get_defined_functions 来获取当前环境中的所有函数。通过打印数组,我们能够清楚地看到内置函数和自定义函数的区别。
当你运行上面的代码时,输出的结果大致如下:
<span><span>内置函数:
Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => abs
[</span><span><span class="hljs-meta">1</span></span><span>] => acos
[</span><span><span class="hljs-meta">2</span></span><span>] => acosh
...
)
自定义函数:
Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => my_custom_function
)
</span></span>
如上所示,get_defined_functions 会将所有内置函数列出在 internal 数组中,而将我们自定义的函数 my_custom_function 列出在 user 数组中。
get_defined_functions 只会列出当前脚本中已定义的函数,包括在当前作用域内的函数。对于从外部文件引入的函数(比如通过 include 或 require 引入的文件中的函数),如果这些文件在当前脚本执行前已被加载,函数也会被列出。
如果你有大量自定义函数,get_defined_functions 会非常有用,尤其是在调试和文档生成的场景中。
get_defined_functions 是一个非常实用的函数,可以帮助开发者快速列出 PHP 环境中所有已定义的函数。通过它,我们可以轻松区分内置函数和自定义函数,帮助更好地管理和调试 PHP 代码。