php constとdefineの違い

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-29 09:02:04992ブラウズ

元のアドレス: 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 を使用して定義すると、コンパイル時に定義するよりもはるかに高速になります。

define は定数を定義します。クラス内で定数を定義するとどうなるでしょうか。もちろん、次の例のように、define は使用できませんが、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 チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。