「定数」の広範な概念は、「変化しない量」です (例: コンピューター プログラムの実行中にプログラムによって変更されない量。数学関数内の特定の量 (特定の円の半径と直径など)、物理学における地面に近い重力加速度、真空中の光の速度など) PHP で定数を定義する 2 つの方法を次に示します。
推奨チュートリアル: PHP ビデオ チュートリアル
ここでは例として pi を使用します。
最初の方法: マクロ定義 は、Pi をシンボルとして定義することです。この時点では、Pi は 3.1415926 の単なるエイリアスであり、3.1415926 はコンパイル中に使用され、Pi の値を置き換えます。
1.defineはマクロ定義であり、プログラムは前処理の段階でdefineで定義した内容に置き換えます。したがって、プログラムの実行中、定数テーブルにはdefineで定義された定数は存在せず、システムはその定数にメモリを割り当てません。 const で定義された定数は、プログラムの実行中に定数テーブル内に存在し、システムによってその定数にメモリが割り当てられます。
2.defineで定義した定数は前処理時に直接置き換えられるだけです。したがって、コンパイル時にデータ型チェックを実行できません。 const で定義された定数は、エラーを避けるためにコンパイル時に厳密な型チェックを受けます。
3. 式を定義するときは、「エッジ効果」に注意してください。たとえば、次の定義です。 #define N 2 3 //期待される N 値は 5 です。N は次のように使用します。int a = N/2 ; //a の値は 2.5 であると予想していましたが、実際には a の値は 3.5 でした。その理由は、前処理段階でコンパイラが a = N/2 を a = 2 3 に処理したためです。 /2; これはマクロ定義です。したがって、文字列置換の「エッジ効果」は次のように定義されます: #define N (2 3)。
2 番目の方法は、PI を変数として定義しますが、プログラム内で値を変更しようとする場合、その値が固定であることをコンパイラに指示します。コンパイル中にエラーが報告されます。 const で定義された定数は 2 つの理由から定数変数と呼ばれます: const で定義された定数は変数と同様に型をチェックすること、const はどこにでも定数を定義できること、メモリの割り当てが異なる場合を除いてコンパイラは定数を変数と同様に扱います。
要約すると、#define 前処理命令の代わりに const を使用することをお勧めします。(しかし現在、#define を使用する人が増えています。便利ですか? ?検討中) 1. const でデータ型を定義できるため、型安全性が向上します。たとえば、上記では定数 PI が double
2 型であると指定できます。const は変数なので (ここでは少し厄介ですが、実際には変更されていませんが、その名前を定数変数と呼びます) , 次に、住所があり、適用可能範囲が広くなります
3. 文法もよく理解されます
符号常量 #define Pi 3.1415926f; 常值变量 const float pi 3.1415926f;
以上がPHPで定数を定義する2つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。