定数は、定義後に変更できないPHPの値です。定数の値は固定されており、通常、変更を必要としない構成または情報を保存するために使用されます。 PHPには、定数には2つのタイプがあります。
定義済み定数:これらの定数はPHPによって自動的に定義され、プログラマーが手動で作成する必要はありません。たとえば、 php_version 、 php_os 、 e_allなど。
ユーザー定義の定数:これらの定数は、define()関数またはconstキーワードを介して開発者によって手動で定義されます。
get_defined_constants()関数は、現在のPHPスクリプトのすべての定義された定数を返すために使用されます。戻り値は連想配列であり、配列の鍵は定数の名前であり、値は定数の対応値です。この関数を使用して、PHPコードをデバッグするときに、PHP環境構成の問題をデバッグするのに非常に役立つ定数、特に定義済み定数を見つけることができます。
get_defined_constants()関数を使用するには、それを呼び出すだけです。
<?php
// 定義されたすべての定数を取得します
$constants = get_defined_constants();
// すべての定数を印刷します
print_r($constants);
?>
このコードを実行した後、定義されたすべての定数を含む配列出力が取得されます。配列内の各要素は、一定の名前とその値です。たとえば、出力は次のように見える場合があります。
Array
(
[PHP_VERSION] => 7.4.3
[PHP_OS] => Linux
[E_ALL] => 32767
...
)
PHPには多くの定義済み定数があり、 get_defined_constants()関数はこれらの定数を返します。事前定義された定数は、特にPHPバージョンの問題を解決したり、エラー報告レベルを調整したりする場合に、デバッグに役立ちます。この関数を使用することにより、現在のPHP環境で定義されているすべての事前定義された定数をすばやく表示できます。
たとえば、現在のPHPバージョンに関する情報を含むphp_version定数を探すことができます。
<?php
$constants = get_defined_constants();
echo '現在 PHP バージョン: ' . $constants['PHP_VERSION'];
?>
特定の事前定義された定数にのみ興味がある場合があります。フィルター条件を設定することにより、定義済みの定数のみを表示できます。 get_defined_constants()関数自体には組み込みフィルタリングメカニズムはありませんが、 array_filter()関数を組み合わせて、通常はphpの定義定数を表す「php_」プレフィックスを含む定数をフィルタリングできます。
<?php
$constants = get_defined_constants();
// すべてを除外します PHP 定義された定数
$php_constants = array_filter($constants, function($key) {
return strpos($key, 'PHP_') === 0;
}, ARRAY_FILTER_USE_KEY);
// すべてを印刷します PHP 定義された定数
print_r($php_constants);
?>
この方法により、PHPバージョン、オペレーティングシステムなど、PHP環境に関連するすべての定数を表示できます。
デバッグの場合、問題の診断を支援するために、事前定義された定数を取得する必要がある場合があります。たとえば、 get_defined_constants()を使用して、 e_all 、 e_noticeなどのPHPエラーレポートレベル定数を取得できます。プログラムにエラーの処理に問題がある場合は、 e_all定数を介してエラーレポートレベルを設定できます。
<?php
$constants = get_defined_constants();
error_reporting($constants['E_ALL']);
?>
このようにして、エラーレポートにすべてのレベルのエラーが表示され、コードで問題が発見されることを確認できます。
get_defined_constants()関数は、現在のスクリプトで定義されたすべての定数を返します。特定の定数の値を表示する必要がある場合は、この関数を呼び出すことなく定数で直接アクセスできます。
コードでいくつかのカスタム定数を使用する場合、 get_defined_constants()もそれらをリストします。そのため、予想どおりに定義されていない定数があるかどうかを確認できます。
get_defined_constants()関数は、開発者がデバッグ中にすべての定義された定数を表示するのに役立つ強力なツールです。事前定義された定数であろうと、ユーザー定義の定数であろうと、PHPプログラムをよりよく理解してデバッグするのに役立つように、それを通して見ることができます。特に、PHPの構成、エラー処理、環境変数に関しては、事前定義された定数の値を知ることが価値があります。