PHP定数constとdefineの違いと使用例

伊谢尔伦
リリース: 2023-03-07 21:44:01
オリジナル
1259 人が閲覧しました

いわゆる定数は単純な識別子です。この値は、スクリプトの実行中に変更することはできません。定数はデフォルトで大文字と小文字が区別されます。通常、定数識別子は常に大文字です。定数にはスカラー データ (ブール値、整数、浮動小数点、文字列) のみを含めることができます。リソース定数を定義できますが、予期しない結果を引き起こす可能性があるため、避けてください。

一部を定義する
マクロは、定数値を置き換えるだけでなく、式やコードセグメントを置き換えることにも使用できます。 (マクロは非常に強力ですが、エラーが発生しやすいため、その長所と短所は非常に物議を醸しています。)
マクロの構文は次のとおりです:

#define 宏名称 宏值
ログイン後にコピー

プログラマの間での提案と一般的な習慣として、マクロ名にはよくすべてのマクロが使用されます。大文字。
マクロを使用する利点:
1) コードをより簡潔かつ明確にする
もちろん、これはマクロに適切な名前を付けるかどうかに依存します。一般に、マクロ名は明確かつ直感的な意味を持つ必要があり、場合によっては長い方がよい場合もあります。
2) コードのメンテナンスが容易になります
コンパイルプロセスにおけるマクロの処理は「前処理」と呼ばれます。つまり、正式なコンパイルの前に、コンパイラはまずコード内に出現するマクロを対応するマクロ値に置き換える必要があります。このプロセスは、皆さんや私がワープロ ソフトウェアで使用する検索と置換に似ています。したがって、マクロを使用してコード内で定数を表現する場合、最終的には即値が使用され、その量の種類が明確に指定されません。
const 部分
定数定義の形式は次のとおりです:

const 数据类型 常量名 = 常量值;
ログイン後にコピー

const で定義された定数にはデータ型があり、コンパイラーがデータをチェックし、プログラム内で発生する可能性のあるエラーをトラブルシューティングしやすくなります。定数は最初に値を指定する必要があり、その後のコードではこの定数の値を変更することはできません。

constとdefineの違い:
メモリ空間の割り当てにおいて。 define がマクロを定義する場合、メモリ領域は割り当てられず、コンパイル時に main 関数内で置き換えられます。型やステートメント構造などのチェックは行われません。つまり、マクロ定義定数です。 #define null 0 などの単なる配置です。null に遭遇すると、コンパイラは常に null を 0 に置き換えます (質問がある場合は、C 言語の書籍の前処理の部分を参照してください)。 const で定義された定数にはデータ型があり、データ型の定数を定義すると、コンパイラがデータをチェックし、プログラム内で発生する可能性のあるエラーをトラブルシューティングしやすくなります。 したがって、const と define の違いは、const を使用して定数を定義すると、両者の間の安全性の問題が解消されることです。

const を使用するとコードが簡単になります。const 自体が言語構造であり、const はコンパイル時に define よりもはるかに高速です。クラスメンバー変数の定義には、

2 を使用できますが、Const は定義できません。コードは次のとおりです:

<?php
if (...){
const FOO = &#39;BAR&#39;;    // 无效的invalid
}
if (...) {
define(&#39;FOO&#39;, &#39;BAR&#39;); // 有效的valid
}
?>
ログイン後にコピー

4. Const は通常の定数名を使用します。定義は名前として式を使用できます。コードは次のとおりです:

<?php
const  FOO = &#39;BAR&#39;;
for ($i = 0; $i < 32; ++$i) {
define(&#39;BIT_&#39; . $i, 1 << $i);
}
?>
ログイン後にコピー

5. const は静的スカラーのみを受け入れます。

<?php
const BIT_5 = 1 << 5;    // 无效的invalid
define(&#39;BIT_5&#39;, 1 << 5); // 有效的valid
?>
ログイン後にコピー

6. const で定義された定数は大文字と小文字を区別し、define は 3 番目のパラメータで大文字と小文字を区別するかどうかを指定できます (true は大文字と小文字を区別しないことを意味します)。

<?php
define(&#39;FOO&#39;, &#39;BAR&#39;, true);
echo FOO; // BAR
echo foo; // BAR
?>
ログイン後にコピー

【おすすめ関連記事】:


1.

phpのdefine関数とdefine関数の違いと使用例

以上がPHP定数constとdefineの違いと使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!