ホームページ  >  記事  >  バックエンド開発  >  php constとdefineの違い

php constとdefineの違い

WBOY
WBOYオリジナル
2016-06-13 12:28:43813ブラウズ

php constとdefineの違い

元のアドレス: http://www.manongjc.com/article/491.html

constはクラスに使用される定義ですメンバー定数は、定義後に変更することはできません。define を使用してグローバル定数を定義すると、他の場所からアクセスできますが、変更することはできません。

注:define はクラス内で定義できませんが、const はクラス内で定義する必要があり、const にはクラス名::変数名

1 を使用してアクセスする必要があります。クラスメンバー変数定義の場合、一度定義されると、その値は変更できません。 define は、どこからでもアクセスできるグローバル定数を定義します。
2.define はクラス内で定義できませんが、const は定義できます。
3. const は条件文で定数を定義できません。

4. const は通常の定数名を使用しますが、define は名前として式を使用できます。

5. const は静的スカラーのみを受け入れますが、define は任意の式を使用できます。
6. const は常に大文字と小文字を区別しますが、define() は大文字と小文字を区別しない定数を定義するために 3 番目のパラメーターを使用できます。
7. const の使用自体は単純で読みやすい言語構造です。これはコンパイル時に定義するよりも const 定義を使用した方がはるかに高速な方法です。

define は定数を定義します。クラス内で定数を定義するとどうなるでしょうか。もちろん、define は使用できませんが、次の例のように const を使用します。

<?<span style="color: #000000;">php</span><span style="color: #008000;">//</span><span style="color: #008000;">在类外面通常这样定义常量</span><span style="color: #008080;">define</span>("PHP","111cn.net"<span style="color: #000000;">);</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> MyClass{    </span><span style="color: #008000;">//</span><span style="color: #008000;">常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号</span>    <span style="color: #0000ff;">const</span> <span style="color: #008080;">constant</span> = 'constant value'<span style="color: #000000;">;     </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> showConstant() {        </span><span style="color: #0000ff;">echo</span>  self::<span style="color: #008080;">constant</span> . "<br>"<span style="color: #000000;">;    }} </span><span style="color: #0000ff;">echo</span> MyClass::<span style="color: #008080;">constant</span> . "<br>"<span style="color: #000000;">; </span><span style="color: #800080;">$classname</span> = "MyClass"<span style="color: #000000;">;</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$classname</span>::<span style="color: #008080;">constant</span> . "<br>"; <span style="color: #008000;">//</span><span style="color: #008000;"> PHP 5.3.0之后</span> <span style="color: #800080;">$class</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> MyClass();</span><span style="color: #800080;">$class</span>-><span style="color: #000000;">showConstant();</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$class</span>::<span style="color: #008080;">constant</span>."<br>"; <span style="color: #008000;">//</span><span style="color: #008000;"> PHP 5.3.0之后//print_r(get_defined_constants());  //可以用get_defined_constants()获取所有定义的常量</span>?>

一般に、define はクラス外の定数を定義し、const は定数を定義します。クラス内の定数を定義します。const にはクラス名::変数名を通じてアクセスする必要があります。ただし、php5.3 以降では、以下のようにクラス外で const を使用して定数を定義することができます。

<?<span style="color: #000000;">php    </span><span style="color: #0000ff;">const</span> a = "abcdef"<span style="color: #000000;">;    </span><span style="color: #0000ff;">echo</span><span style="color: #000000;"> a;</span>?>
定数の基礎知識については説明しません。上記に加えて、define と const のその他の違い (インターネットから抜粋):

1. const は条件文で定数を定義できませんが、define は次のように定義できます。

<?<span style="color: #000000;">php    </span><span style="color: #0000ff;">if</span>(1<span style="color: #000000;">){        </span><span style="color: #0000ff;">const</span> a = 'java'<span style="color: #000000;">;    }    </span><span style="color: #0000ff;">echo</span> a;  <span style="color: #008000;">//</span><span style="color: #008000;">必错</span>?>
2.const は通常の定数名を使用します。定義では名前として式を使用できます。

<?<span style="color: #000000;">php</span><span style="color: #0000ff;">const</span>  FOO = 'PHP'<span style="color: #000000;">; </span><span style="color: #0000ff;">for</span> (<span style="color: #800080;">$i</span> = 0; <span style="color: #800080;">$i</span> < 32; ++<span style="color: #800080;">$i</span><span style="color: #000000;">) {     </span><span style="color: #008080;">define</span>('PHP_' . <span style="color: #800080;">$i</span>, 1 << <span style="color: #800080;">$i</span><span style="color: #000000;">); } </span>?>
3.const は受け入れ可能なもののみです静的スカラーであり、define では任意の式を使用できます。

<?<span style="color: #000000;">php</span><span style="color: #0000ff;">const</span> PHP = 1 << 5;    <span style="color: #008000;">//</span><span style="color: #008000;"> 错误</span><span style="color: #008080;">define</span>('PHP', 1 << 5); <span style="color: #008000;">//</span><span style="color: #008000;"> 正确 </span>?>
4.const 自体が言語構造です。そしてdefineは関数です。したがって、const を使用する方がはるかに高速です。

2 つの一般的な同期: どちらも再割り当てできません。

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