ホームページ >バックエンド開発 >PHPチュートリアル >php constとdefineの違い
元のアドレス: http://www.manongjc.com/article/491.html
constはクラスメンバー定数の定義に使用されます。defineではこのようにグローバル定数を定義します。他の場所からアクセスすることはできますが、変更することはできません。以下に具体的な詳細をリストします。
注:define はクラス内で定義できませんが、const はクラス内で定義する必要があり、const はパススルーする必要があります。クラス名::変数名。 アクセス
1. Const は、クラスのメンバー変数の定義に使用されます。一度定義すると、その値は変更できません。 define は、どこからでもアクセスできるグローバル定数を定義します。
2.define はクラス内で定義できませんが、const は定義できます。
3. Const は条件文で定数を定義できません。
4. Const は通常の定数名を使用しますが、define は名前として式を使用できます。
5. const は静的スカラーのみを受け入れることができますが、define は任意の式を使用できます。
6. const は常に大文字と小文字を区別します。ただし、define() は 3 番目のパラメーターを通じて大文字と小文字を区別しない定数を定義できます。const はそれ自体がメソッドです。 const を使用して定義すると、コンパイル時に定義するよりもはるかに高速になります。
<?<span>php </span><span>//</span><span>在类外面通常这样定义常量</span><span>define</span>("PHP","111cn.net"<span>); </span><span>class</span><span> MyClass { </span><span>//</span><span>常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号</span><span>const</span><span>constant</span> = 'constant value'<span>; </span><span>function</span><span> showConstant() { </span><span>echo</span> self::<span>constant</span> . "<br>"<span>; } } </span><span>echo</span> MyClass::<span>constant</span> . "<br>"<span>; </span><span>$classname</span> = "MyClass"<span>; </span><span>echo</span><span>$classname</span>::<span>constant</span> . "<br>"; <span>//</span><span> PHP 5.3.0之后</span><span>$class</span> = <span>new</span><span> MyClass(); </span><span>$class</span>-><span>showConstant(); </span><span>echo</span><span>$class</span>::<span>constant</span>."<br>"; <span>//</span><span> PHP 5.3.0之后 //print_r(get_defined_constants()); //可以用get_defined_constants()获取所有定义的常量</span>?>一般に、define はクラス外の定数を定義し、const はクラス内の定数を定義します。const にはクラス名::変数を通じてアクセスする必要があります。名前。ただし、php5.3 以降では、以下のようにクラス外で定数を定義することができます。
<?<span>php </span><span>const</span> a = "abcdef"<span>; </span><span>echo</span><span> a; </span>?>定数の基礎知識については、ここでは触れません。 、define と const には他にも違いがあります (インターネットから抜粋): 1.const は条件文で定数を定義できませんが、次のように定義できます:
<?<span>php </span><span>if</span>(1<span>){ </span><span>const</span> a = 'java'<span>; } </span><span>echo</span> a; <span>//</span><span>必错</span>?>2.const は通常の定数名を使用します。式を名前として使用できます
<?<span>php </span><span>const</span> FOO = 'PHP'<span>; </span><span>for</span> (<span>$i</span> = 0; <span>$i</span> < 32; ++<span>$i</span><span>) { </span><span>define</span>('PHP_' . <span>$i</span>, 1 << <span>$i</span><span>); } </span>?>3 .const は静的スカラーのみを受け入れることができますが、define は任意の式を受け取ることができます。
<?<span>php </span><span>const</span> PHP = 1 << 5; <span>//</span><span> 错误</span><span>define</span>('PHP', 1 << 5); <span>//</span><span> 正确 </span>?>4.const自体が言語構造です。そしてdefineは関数です。したがって、const を使用する方がはるかに高速です。 2 つの同期: 両方を再割り当てすることはできません。
上記では、関連する側面も含めて php const と define の違いを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。