PHPでは、 get_defined_constants()は非常に実用的な関数であり、現在のスクリプトで定義されたすべての定数を取得するために使用できます。この機能は、デバッグをしている場合、または実行中の環境の定数の状態を理解したい場合に特に役立ちます。
この関数は、ブールパラメーター:カテゴリを受け入れることができます。 get_defined_constants(true)およびget_defined_constants(false)を呼び出すと、返品結果は異なります。それらの違いを理解することは、デバッグや分析のためにこの機能をよりよく使用するのに役立ちます。
get_defined_constants(false) (またはパラメーターを渡すことなく直接呼び出す)を呼び出すと、返品は1次元配列であり、キー名は定数の名前、キー値は対応する値です。例えば:
print_r(get_defined_constants(false));
可能な出力:
Array
(
[E_ERROR] => 1
[E_WARNING] => 2
[E_PARSE] => 4
...
)
これはすべて現在定義されている定数であり、グループ化されておらず、定数をキー名として直接出力します。このパターンはより直感的で簡潔であり、どの定数が存在するか、その値を迅速に表示するのに適しています。
get_defined_constants(true)を呼び出すと、返された2次元配列は、つまり、これらの定数は「モジュール」で分類され、グループ化されます。一般的なグループには、コア、 PCRE 、日付、ユーザーなどが含まれます。このパターンは、定数が分類された方法で管理する必要があるシナリオにより適しています。
例えば:
print_r(get_defined_constants(true));
出力が似ている可能性があります。
Array
(
[Core] => Array
(
[E_ERROR] => 1
[E_WARNING] => 2
...
)
[pcre] => Array
(
[PREG_PATTERN_ORDER] => 1
...
)
[user] => Array
(
[MY_CONSTANT] => 123
)
)
この構造により、定数のソースをより明確に理解することができます。これは、拡張機能によって提供され、ユーザー定義のPHPコアによって定義される分析に役立ちます。
使い方 | 構造に戻ります | 使用に適しています |
---|---|---|
get_defined_constants(false) | 1次元配列 | シンプルなデバッグ、クイックトラバーサル |
get_defined_constants(true) | 二次元配列(カテゴリ) | ソースを区別するための詳細な分析 |
ユーザー定義の定数(非PHPコアまたは拡張機能の定義)を取得するだけの場合、 get_defined_constants(true)['user']を使用することは非常に簡潔な方法です。
define('SITE_NAME', 'MySite');
define('SITE_URL', 'https://m66.net');
$userConstants = get_defined_constants(true)['user'];
print_r($userConstants);
出力結果:
Array
(
[SITE_NAME] => MySite
[SITE_URL] => https://m66.net
)
これは、大規模なプロジェクトで特に役立ち、予想されるすべてのカスタム定数が定義されているかどうかをすばやく確認するのに役立ちます。
get_defined_constants()は、PHPの非常に貴重なツール関数の1つです。定数のタイルリストが必要な場合は、 falseを使用するか、パラメーターを渡しません。一定のソースのより詳細な分類が必要な場合、 Trueを使用することがより良い選択です。これら2つの使用法の違いをマスターすると、開発とデバッグで一定の情報をより効率的に使用することができます。