PHP における -> と :: の違い
->
クラス インスタンスの参照に使用されるクラス内のメソッドと属性
例:
class Test{ function add(){return $this->var++;} var $var = 0; } $a = new Test; // 实例化对象名称 echo $a->add(); echo $a->var;
::
クラス内の静的メソッドと静的プロパティの参照メソッド
例:
class Test{ public static function test(){ public static $test = 1; } }
クラスの静的メソッドと静的プロパティは、オブジェクトをインスタンス化せずに直接使用できます (使用されるメソッドはクラス名::静的メソッド名です)
Test::test(); // 调用静态方法test Test::$test; // 来取得$test静态属性的值
注:
静的メソッドが使用されますこのクラスを読んだ後、またはクラスを導入した後、このクラス ファイルが作成されたとき、すでにインスタンス化され、メモリに保存されているため、非静的クラスは新しいクラスである必要があります。
静的クラスのメモリ内に複数のインスタンスがある場合でも、静的属性のコピーは 1 つだけです。
以上がPHP の -> と :: の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。