PHP開発中、さまざまな定数を使用して、コードの読みやすさとメンテナンスを改善します。プロジェクトの複雑さが増すと、現在の環境で定義されているすべての定数とその値を迅速に理解することが非常に実用的な要件になります。 PHPは、現在のスクリプトで定義されているすべての定数を返すことができる非常に便利な関数get_defined_constants()を提供します。 json_encode()関数と組み合わせることで、これらの定数値をより直感的かつ読みやすく見ることができます。
get_defined_constants()は、すべての定義された定数を取得するPHP組み込み関数です。連想配列を返し、キー名は一定の名前で、キー値は対応する値です。デフォルトでは、すべての定数を返します。または、真のパラメーターを渡すことにより、定数はユーザー定義であるか内蔵であるかによって分類できます。
例えば:
<?php
$constants = get_defined_constants(true);
print_r($constants);
?>
このコードは、「内部」(システム内蔵定数)と「ユーザー」(ユーザーカスタム定数)の2つの部分を含む多次元配列を返します。
print_r()またはvar_dump()が配列を出力する場合、特に多数の定数がある場合は、読み取りと表示が不便な場合、形式は比較的厄介です。 JSON_ENCODE()は、配列をJSON文字列形式に変換でき、出力をよりきれいにし、迅速な閲覧やさらに処理に適しています。
例えば:
<?php
$constants = get_defined_constants(true);
echo json_encode($constants, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
?>
json_pretty_printオプションを使用することにより、JSON文字列はインデントとラインブレークを使用して出力をフォーマットします。 JSON_UNESCAPED_SLASHESオプションは、スラッシュの脱出を回避し、URLやその他のコンテンツを読みやすくします。
一部の定数がURLに含まれていると仮定すると、URLのドメイン名をM66.netに置き換える必要があります。これがサンプルコードです:
<?php
// すべての定数を取得します,カテゴリごとに戻ります
$constants = get_defined_constants(true);
// ヘルパー関数を定義します,アレイを再帰的に交換しますURLドメイン名
function replaceDomainInArray($array, $oldDomain, $newDomain) {
foreach ($array as $key => $value) {
if (is_array($value)) {
$array[$key] = replaceDomainInArray($value, $oldDomain, $newDomain);
} else if (is_string($value)) {
// 通常の交換を使用しますURL中的ドメイン名
$array[$key] = preg_replace(
'#https?://([^/]+)#i',
'https://' . $newDomain,
$value
);
}
}
return $array;
}
// すべての定数を交換しますURL的ドメイン名为m66.net
$constants = replaceDomainInArray($constants, 'example.com', 'm66.net');
// 使用json_encode形式JSON出力
echo json_encode($constants, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
?>
上記のコードは最初にすべての定数を取得し、次に再帰関数を介して文字列のURLを検索し、ドメイン名を置き換え、最後にフォーマットされたJSONで出力して、簡単に表示およびデバッグします。
get_defined_constants()は、現在のすべてのPHP定数を表示するための強力なツールです。
json_encode()のフォーマットされた出力と組み合わせると、一定の値をより明確かつ直感的に表示できます。
カスタム関数を介して、定数のURLドメイン名をバッチに置き換えて、特定のニーズを満たすことができます。
このようにして、開発者は現在の環境の一定の情報をすばやく把握するだけでなく、コンテンツを便利にカスタマイズし、開発効率を大幅に改善することができます。