PHPでは、 get_defined_constantsは、PHPで定義され、内部的に定義されたすべての定義された定数を返す非常に便利な関数です。この関数は、ブールパラメーター$分類を受け入れることができます。 trueに設定されている場合、拡張モジュールに従って定数を分類して、特定のモジュール(SPL、PDOなど)に関連する定数を見つけることができます。
この記事では、get_defined_constants(true)関数を使用して、SPLやPDOなどの拡張モジュールで定数を取得し、実際のコードと組み合わせて使用する方法を実証する方法を紹介します。
まず、 get_defined_constantsの基本的な使用法を見てみましょう。
<?php
$constants = get_defined_constants(true);
print_r($constants);
?>
パラメーターが渡されると、返された結果は多次元配列であり、キーはモジュール名( Core 、 SPL 、 PDOなど)であり、値はモジュールの下のすべての定数の連想配列です。
SPL(標準PHPライブラリ)は、オブジェクトコレクションやイテレーターなどの高レベル構造を処理するPHPのモジュールです。このモジュールのすべての定数を取得するには、これを行うことができます。
<?php
$constants = get_defined_constants(true);
if (isset($constants['SPL'])) {
echo "SPL モジュールの定数は次のとおりです:\n";
foreach ($constants['SPL'] as $name => $value) {
echo "$name = $value\n";
}
} else {
echo "現在 PHP 環境が有効になっていない SPL モジュール。\n";
}
?>
このスクリプトは、次のような現在のPHP環境で定義されているすべてのSPL定数を出力します。
SPL_ITERATOR_SELF_FIRST = 0
SPL_ITERATOR_CHILD_FIRST = 1
...
PDOはPHPのデータアクセス抽象化レイヤーであり、 PDOやPDO_MYSQLなどのモジュールで定義された一連の定数もあります。これらの定数を抽出することもできます。
<?php
$constants = get_defined_constants(true);
if (isset($constants['pdo'])) {
echo "PDO モジュールの定数は次のとおりです:\n";
foreach ($constants['pdo'] as $name => $value) {
echo "$name = $value\n";
}
}
if (isset($constants['pdo_mysql'])) {
echo "\nPDO MySQL モジュールの定数は次のとおりです:\n";
foreach ($constants['pdo_mysql'] as $name => $value) {
echo "$name = $value\n";
}
}
?>
このコードは、次のようなPDOおよび特定のドライバー(MySQLなど)の定数を理解するのに役立ちます。
PDO::ATTR_ERRMODE = 3
PDO::ERRMODE_EXCEPTION = 2
...
get_defined_constants(true)の重要な目的は、モジュールが提供する定数を迅速に理解できるようにすることです。特に、あまり馴染みのないPHP拡張機能(APC、Opcacheなど)を使用する場合、この方法はドキュメントを調べずにすべての関連定数を直接リストすることができます。
これらの結果をHTMLテーブルとして出力して、次のようなWebサイトに埋め込むこともできます。
<?php
$constants = get_defined_constants(true);
$module = 'SPL'; // 交換することもできます 'pdo' 等其他モジュール
if (isset($constants[$module])) {
echo "<table border='1'>";
echo "<tr><th>定数名</th><th>価値</th></tr>";
foreach ($constants[$module] as $name => $value) {
echo "<tr><td>$name</td><td>$value</td></tr>";
}
echo "</table>";
} else {
echo "$module モジュール未启用或无常量。";
}
?>
このコードをサーバーに展開します。
https://www.m66.net/show_constants.php
Webページに一定の情報を動的に表示できます。
get_defined_constants(true)は、デバッグ、学習、またはドキュメント生成に特に適した強力で実用的なツールです。それを通して、PHPモジュールで定義されているすべての定数をすばやく取得し、開発とメンテナンスを大幅に促進できます。 SPL、PDO、またはその他のモジュールを使用する場合、この機能の使用方法を習得すると、PHPシステム定数をより包括的な理解が得られます。