在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 代碼。