PHP開発では、定数はそれらの非常に重要な部分です。それらは、コードで簡単に再利用するために不変の値を保存するために使用されます。 PHPは、現在のスクリプトで定義されたすべての定数を取得するために、非常に実用的な関数get_defined_constants()を提供します。この記事では、get_defined_constants()関数の使用を詳細に紹介し、それを使用するときに注意を払うために解析します。
get_defined_constants()は、PHPの組み込み関数であり、現在定義されているすべての定数配列を返すために使用されます。ユーザー定義の定数を含むだけでなく、PHPに組み込まれたさまざまなシステム定数も含まれています。
関数定義:
array get_defined_constants([bool $categorize = false])
parameter $ caltalize (optional):デフォルト値はfalseです。つまり、すべての定数とその値を含む1次元配列が返されます。
trueが渡されると、2次元配列が返され、定数は異なるカテゴリに保存されます。
get_defined_constants()を使用してすべての定数を取得する方法を示す簡単な例を次に示します。
<?php
// すべての定数を取得します,分類されていません
$constants = get_defined_constants();
print_r($constants);
?>
出力は、一定の名前と一定の値を含む連想配列です。たとえば、次のようです。
Array
(
[PHP_VERSION] => 8.0.3
[E_ERROR] => 1
[E_WARNING] => 2
...
)
さまざまなタイプの定数をより明確に見たい場合は、真のパラメーターを渡すことができます。
<?php
// すべての定数を取得します,および分類します
$constants = get_defined_constants(true);
print_r($constants);
?>
出力構造は次のとおりです。
Array
(
[Core] => Array
(
[E_ERROR] => 1
[E_WARNING] => 2
...
)
[date] => Array
(
[DATE_ATOM] => Y-m-d\TH:i:sP
[DATE_COOKIE] => l, d-M-Y H:i:s T
...
)
[user] => Array
(
[MY_CONST] => 123
)
)
これにより、定数の分類を簡単に確認できます。
デバッグプログラム:現在のシステムとプログラムで利用可能なすべての定数をすばやく表示します。
コードを動的に生成する:システム定数を読み取ることにより、コード適応または構成を実装します。
フレームワーク開発:すべての組み込みまたはユーザー定義の定数は、統一された管理のためのフレームワークにリストする必要があります。
より大きい配列に戻ります<br> プログラムで多数の定数が定義されている場合、返された配列は比較的大きくなります。生産環境での直接印刷を避けるために、デバッグ中に使用することをお勧めします。
読み取り専用性<br> 定数の値を変更することはできません。 get_defined_constants()によって返される配列は表示のみであり、定数はこの関数を介して変更できません。
分類パラメーターの使用<br> trueを渡すときに分類によって返される配列は、システムの定数構造を理解するのに役立ちますが、すべての定数のタイル張りのリストのみを気にする場合は、 falseパラメーターを渡すか、パスを渡すことができます。
他の一定の機能との協力<br> 定数は、 define()関数と組み合わせて動的に定義でき、 get_defined_constants()はカスタム定数を検出できます。
<?php
// カスタム定数を定義します
define('MY_CONST', 'Hello World');
define('ANOTHER_CONST', 2025);
// すべての定数を取得します并分类
$allConstants = get_defined_constants(true);
// 出力ユーザー定義の定数部品
print_r($allConstants['user']);
?>
出力結果:
Array
(
[MY_CONST] => Hello World
[ANOTHER_CONST] => 2025
)
これにより、カスタム定数は簡単に管理および表示できます。
get_defined_constants()は、PHPの非常に便利な組み込み機能であり、開発者が現在のすべての定数情報を迅速に取得するのに役立ちます。システムの定数であろうと、ユーザー定義の定数であろうと、一目で見ることができます。この関数の合理的な使用は、デバッグとコード管理を大幅に容易にする可能性がありますが、返品配列のサイズと分類パラメーターの使用に注意する必要があります。