定数は、プログラムの実行中に固定されたままで、定義されたら変更できない値です。 PHPでは、定数は通常、 define()関数によって定義されます。定数の命名ルールは変数のルールと類似していますが、変数とは異なり、定義後に定数の値を変更することはできません。
定数を使用する場合、数字で定数に名前を付けると、PHPの解析エラーが発生します。なぜなら、PHPは数字として数字から始まる文字列を解釈し、違法な一定の名前をもたらすからです。例えば:
define('3L', 'three');
上記のコードは、次のようにPHPによって解析されます。
define(3L, 'three');
数字は一定の名前として違法であるため、構文エラーが発生します。
番号から始めないようにする簡単な方法は、一定の名前の前に文字を追加することです。
// 一定の名前に文字を追加する例
define('L3', 'three');
echo L3; // 出力の結果は次のとおりです 'three'
このように、PHPは、数字から始まる違法な名前ではなく、 L3として一定の名前を認識します。
別の標準的な方法は、定数名を文字列として渡すことであり、一定の名前が法的文字列であることを確認することです。
// 文字列定数名を使用する例
define('THREE', 'three');
echo THREE; // 出力の結果は次のとおりです 'three'
この方法では、解析中のあいまいさを避けるために、一定の名前を文字列として明示的に宣言します。
PHPは、以下に示すように、バックスラッシュを介して数字から始まる一定の名前を逃れることもサポートしています。
// バックスラッシュを使用して数値定数名を逃がす例
define('\3L', 'three');
echo L3; // 出力の結果は次のとおりです 'three'
このアプローチは、違法な数値命名によって引き起こされるエラーを回避しますが、比較的まれに使用されません。
「違法な数字を一定の名前として使用する」PHPエラーに遭遇すると、上記の3つの方法を解くことができます。最も一般的に使用され、推奨される方法は、定数名に接頭辞を付けたり、文字列の形で定数名を使用したりすることです。標準化された定数命令は、構文エラーを回避するだけでなく、コードの読みやすさとメンテナンスを改善し、コードの「マジック番号」の出現を減らします。