ホームページ > バックエンド開発 > PHPの問題 > PHPのdefineとconstの違いは何ですか?

PHPのdefineとconstの違いは何ですか?

青灯夜游
リリース: 2023-03-02 18:26:01
オリジナル
2727 人が閲覧しました

違い: 1. const はクラス メンバー変数の定義に使用されますが、define はクラス メンバー変数の定義に使用できません。2. const は静的スカラーのみを受け入れますが、define は任意の式を使用できます。3. . const 定数の定義では大文字と小文字が区別されますが、define では 3 番目のパラメータで大文字と小文字を区別するかどうかを指定できます。

PHPのdefineとconstの違いは何ですか?

定数はデフォルトで大文字と小文字が区別されます。通常、定数識別子は常に大文字です。

define() 関数を使用して定数を定義できます。php5.3.0 以降では、const キーワードを使用してクラス外の定数を定義できます。以前のバージョンでは、const キーワードはクラス内でのみ使用できました。

定数には、スカラー データ (ブール値、整数、浮動小数点、文字列) のみを含めることができます。リソース定数を定義することはできますが、避けるべきです。

定数を定義する

define("PI", 3.14);
echo PI; // 3.14
echo pi; // 输出 "pi" 并发出一个Warning信息

// 以下代码在 PHP 5.3.0 后可以正常工作
const RATE = 'Hello World';
echo RATE;
ログイン後にコピー

PHP で定数を定義する場合、const と define の違い

1. Const 自体は次のとおりです。言語構造ですが、define は関数です。

2. Const はコンパイル時に define よりもはるかに高速です

3. Const はクラス メンバー変数の定義に使用されますが、define はクラス メンバー変数の定義には使用できません

4. const は条件文では使用できません

if (...){
    const FOO = 'BAR';    // 无效的
}
if (...) {
    define('FOO', 'BAR'); // 有效的
}
ログイン後にコピー

5. const は静的スカラーのみを受け入れますが、define は任意の式を使用できます

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

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

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

動的定数名

定数の場合name は動的であるため、関数 constant() を使用して定数の値を取得することもできます。 get_define_contstants() を使用して、定義されているすべての定数のリストを取得します。

define(&#39;PI&#39;,3.14);

$chang = &#39;PI&#39;;
echo $chang,&#39;<br/>'; // PI

echo constant($chang); // 3.14
ログイン後にコピー

define — 特定の名前の定数が存在するかどうかを確認する

// 真实开发一般是这样的
if(!defined('HEI')){
    define('HEI',8846);
}
ログイン後にコピー

推奨される関連チュートリアル: 「PHP チュートリアル 」 「

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

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