php constとdefineの違い
元のアドレス: http://www.manongjc.com/article/491.html
constはクラスに使用される定義ですメンバー定数は、定義後に変更することはできません。define を使用してグローバル定数を定義すると、他の場所からアクセスできますが、変更することはできません。
注:define はクラス内で定義できませんが、const はクラス内で定義する必要があり、const にはクラス名::変数名
1 を使用してアクセスする必要があります。クラスメンバー変数定義の場合、一度定義されると、その値は変更できません。 define は、どこからでもアクセスできるグローバル定数を定義します。
2.define はクラス内で定義できませんが、const は定義できます。
3. const は条件文で定数を定義できません。
5. const は静的スカラーのみを受け入れますが、define は任意の式を使用できます。
6. const は常に大文字と小文字を区別しますが、define() は大文字と小文字を区別しない定数を定義するために 3 番目のパラメーターを使用できます。
7. const の使用自体は単純で読みやすい言語構造です。これはコンパイル時に定義するよりも 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>?>
<?<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>?>
<?<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>?>
<?<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>?>
<?<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>?>
2 つの一般的な同期: どちらも再割り当てできません。