ホームページ >バックエンド開発 >PHPチュートリアル >PHP定数のdefineとconstの使い方の違いを詳しく解説
定数は単純な識別子です。この値は、スクリプトの実行中に変更できません (定数ではない、いわゆる マジック定数を除く)。定数はデフォルトで大文字と小文字が区別されます。通常、定数識別子は常に大文字です。
define() 関数を使用して定数を定義できます。 php5.3.0 以降では、const キーワード を使用してクラス定義の外で定数を定義できます。以前のバージョンでは、const キーワードはクラス内でのみ使用できました。定数を一度定義すると、変更したり未定義にしたりすることはできません。
定数には、スカラー データ (ブール値、整数、浮動小数点、文字列) のみを含めることができます。リソース定数を定義できますが、予期しない結果を引き起こす可能性があるため、避けてください。
変数とは異なり、定数の前に $ 記号を付ける必要はありません。定数名が動的である場合は、関数 constant() を使用して定数の値を取得することもできます。 get_define_contstants() を使用して、定義されているすべての定数のリストを取得します。
定数と変数 は次のように異なります:
1、定数の前にドル記号 ($) はありません
2、定数のみ定義可能
3. のスコープを無視できます。一度定義すると、再定義したり、定義を解除したりすることはできません。
5.定数の値はスカラーのみです<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const USERNAME = 'zhouguowei';
echo USERNAME;
echo constant("USERNAME");
const ZHOUUSERNAME = 'zhouguowei2222222222';
define('MYUSERNAME','zhouguowei1111111');
echo "<pre class="brush:php;toolbar:false">";
print_r(get_defined_constants());
?>
phpで定数を定義する場合、constとdefineの違いは何ですか?
答え: const を使用すると、コードがシンプルになり読みやすくなります。const 自体は言語構造であり、define は関数です。さらに、const はコンパイル時に定義するよりもはるかに高速です。1.
const は、一度定義すると変更できません。 Define はクラス メンバー変数の定義には使用できませんが、グローバル定数には使用できます。
2、Constはクラスで使用できますが、定義はできません 3、Const不能再条件语句中定义常量 4、const采用普通的常量名称,define可以采用表达式作为名称 5、const只能接受静态的标量,而define可以采用任何表达式 6、const定义的常量时大小写敏感,而define可以通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。<?php
if (...){
const FOO = 'BAR'; // 无效的invalid
}
if (...) {
define('FOO', 'BAR'); // 有效的valid
}
?>
<?php
const FOO = 'BAR';
for ($i = 0; $i < 32; ++$i) {
define('BIT_' . $i, 1 << $i);
}
?>
<?php
const BIT_5 = 1 << 5; // 无效的invalid
define('BIT_5', 1 << 5); // 有效的valid
?>
<?php
define('FOO', 'BAR', true);
echo FOO; // BAR
echo foo; // BAR
?>
以上がPHP定数のdefineとconstの使い方の違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。