當前位置: 首頁> 最新文章列表> [怎樣用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 代碼。