ホームページ  >  記事  >  バックエンド開発  >  PHPにおけるconstとstaticの違いと使い方

PHPにおけるconstとstaticの違いと使い方

不言
不言オリジナル
2018-05-15 17:40:081784ブラウズ

この記事では、PHP における const と static の違いと使い方を紹介します。必要な方は参考にしてください。

まず、const については、PHP クラス内ではメソッドではなくメンバー属性のみを変更できます。以下に続きます:

[php]view plaincopy

class Test{  
    const PATH = 'c/';//修饰常量  
    const function test(){//这种方法是错误的,const无法修饰方法  
    }  
}

constを使用する場合、権限を変更したフィールドを追加する必要はありませんが、定数がオブジェクトに属するのではなく、クラス全体を呼び出すため、呼び出すときはクラス名とドメイン名修飾子を使用する必要があります。例:

[php]view plaincopy

echo Test::PATH;  
//也可以使用下面的方法调用  
$test = new Test();  
echo  $test::PATH;

しかし、内部で呼び出す場合は問題が発生します。クラス内の現在のクラス名または現在のオブジェクト名を取得する方法です (php はオブジェクトに基づいてクラス名を取得できます - リフレクション)。php は、次のような 2 つの特別なキーワードを提供します。

[php]

view plain copy

class Test{  
    const PATH = 'c/';//修饰常量  
    public function ass(){  
        echo $this::PATH.&#39;<br />&#39;;  
        echo self::PATH.&#39;<br />&#39;;  
    }  
}

ここで、self ($ なし) は現在のクラス名を表し、$this は現在のオブジェクトを表します。このようにして、クラス内で const 変更された定数を呼び出すことができます。

次に静的について話しましょう

constは非常に便利ですが、一度定義すると値を変更することはできません。ただし、場合によってはクラスに属する属性が必要ですが、その値は変更できます。このクラスは複数のオブジェクトを構築します。ここで static を使用します。static がクラスのメンバー変数を変更する場合、その使用法は基本的に const と同じです。違いは、static によって変更されたプロパティがアクセス許可を追加できることです。 7.1 Const も追加できますが、前のものは追加できません)、static で変更されたメンバー変数の値を変更できます。

しかし、static がメンバーメソッドを変更すると、使用方法が少し変わります。クラス内、static で変更されたメソッド本体内では、現在のクラスの通常のメンバー変数にアクセスすることはできません。 $this では、現在のクラスの静的メンバー変数とクラス定数のみを使用できます。

[php]

view plaincopy

class Test{  
    static public $name=&#39;asd&#39;;  
    const π = 3.1415926;  
    public $age = 10;  
    public static function lenth($r){  
        //echo $this->age;//会发生错误,不能访问普通的成员变量  
        echo Test::$name;  
        return $r*2*self::π;  
          
    }  
    public static function area($r){  
        return $r*$r*self::π;  
    }     
}

staticを使用するプロセスでは、呼び出されるメソッドはstaticで変更された変数とは異なります。クラス名やオブジェクト名などを通じて呼び出すことができます。 as :

[php]

view plaincopy

echo &#39;周长:&#39;. Test::lenth(1).&#39;<br/>&#39;;  
echo &#39;面积:&#39;.Test::area(1).&#39;<br/>&#39;;  
$per = new Test();  
echo $per->lenth(3);

上記 2 つの呼び出しメソッドはどちらも正当です。

関連する推奨事項:

PHP で iconv 関数を使用する方法

PHP_EOL PHP での改行解析

以上がPHPにおけるconstとstaticの違いと使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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