ホームページ  >  記事  >  バックエンド開発  >  PHP 定数を定義する 2 つの方法、define と const の違いは何ですか?

PHP 定数を定義する 2 つの方法、define と const の違いは何ですか?

青灯夜游
青灯夜游転載
2022-07-27 11:30:093215ブラウズ

この記事では、PHP 定数を理解し、PHP 定数の 2 つの定義方法を比較し、それらの違いについて説明します。

PHP 定数を定義する 2 つの方法、define と const の違いは何ですか?

#定数は単純な識別子です。この値は、スクリプトの実行中に変更できません (定数ではない、いわゆるマジック定数を除く)。定数はデフォルトで大文字と小文字が区別されます。通常、定数識別子は常に大文字です。

define() 関数を使用して定数を定義できます。 php5.3.0 以降では、const キーワードを使用してクラス定義の外で定数を定義できます。以前のバージョンでは、const キーワードはクラス内でのみ使用できました。定数を一度定義すると、変更したり未定義にしたりすることはできません。

定数にはスカラー データ (ブール値、整数、浮動小数点数、文字列) のみを含めることができます。リソース定数を定義できますが、予期しない結果を引き起こす可能性があるため、避けてください。

定数は名前を指定するだけで値を取得できますが、変数とは異なり、定数の前に $ 記号を追加しないでください。定数名が動的である場合は、関数 constant() を使用して定数の値を取得することもできます。 get_define_contstants() を使用して、定義されているすべての定数のリストを取得します。

定数と変数の違いは次のとおりです:

1. 定数の前にドル記号 ($) はありません

2 . 定数は、define() 関数の定義のみを渡すことができますが、代入ステートメントを介して渡すことはできません

3. 定数は、変数のスコープに関係なく、どこでも定義してアクセスできます

#4. 定数が渡されると、

5. 定数の値はスカラーのみ可能です

<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const USERNAME = &#39;zhouguowei&#39;;
echo USERNAME;
echo constant("USERNAME");
 
const ZHOUUSERNAME = &#39;zhouguowei2222222222&#39;;
 
define(&#39;MYUSERNAME&#39;,&#39;zhouguowei1111111&#39;);
echo "<pre class="brush:php;toolbar:false">";
print_r(get_defined_constants());  
?>

Q: PHP で定数を定義する場合、const と const の違いは何ですか?そして定義しますか?

回答: const を使用すると、コードがシンプルで読みやすくなります。const 自体は言語構造であり、define は関数です。さらに、const はコンパイル時に定義するよりもはるかに高速です。

1. Const はクラスのメンバー変数の定義に使用され、一度定義すると変更することはできません。 Define はクラス メンバー変数の定義には使用できませんが、グローバル定数には使用できます。

2. Const はクラス内で使用できますが、定義することはできません。

3. 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 は静的スカラーのみを受け入れることができますが、define は任意の式を使用できます

<?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
?>

推奨学習: 「

PHP ビデオ チュートリアル

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

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。