PHPでは、組み込み関数は、ユーザーが書くことなく直接使用できる事前定義された関数です。カスタム関数は、ニーズに応じてユーザーが作成した関数です。 PHPのすべての組み込み関数とカスタム関数をリストする場合は、PHPが提供するget_defined_functions関数を使用できます。この関数は、現在のPHP環境のすべての定義された関数をリストするだけでなく、これらの関数を組み込み関数とユーザー定義関数の2つのカテゴリに分割します。
get_defined_functionsは、すべての定義された関数を含む配列を返すPHPビルトイン関数です。この配列には2つのキーがあります。
内部:すべての内蔵機能を含む配列。
ユーザー:すべてのユーザー定義機能を含む配列。
この関数にはパラメーターがなく、呼び出されたときに多次元配列を返し、開発者がすべての機能の定義を表示できるようにします。
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は内部配列内のすべての組み込み関数をリストし、カスタム関数my_custom_functionがユーザー配列にリストされています。
get_defined_functionsは、現在の範囲内の関数を含む、現在のスクリプトで定義されている関数のみをリストします。外部ファイルから導入された関数(含まれるまたは要求されたファイルに導入されたファイルの関数など)の場合、現在のスクリプトが実行される前にこれらのファイルがロードされた場合に関数がリストされます。
多くのカスタム関数がある場合、 get_defined_functionsは、特にデバッグやドキュメントの生成シナリオで非常に便利です。
get_defined_functionsは、PHP環境で定義されたすべての機能を開発者にすばやくリストするのに役立つ非常に実用的な機能です。それを通して、組み込み関数とカスタム関数を簡単に区別し、PHPコードをより適切に管理およびデバッグするのに役立ちます。