5

重複の可能性: PHPの::(二重コロン)と->(矢印)の違いは何ですか?
参照-この記号はPHPで何を意味しますか?

私はPHPにかなり精通していますが、手続き型にすぎません。そこで私は、オブジェクト指向の学習に挑戦することにしました。私はそれのコツをつかんでいて、それをとても気に入っています。

PHP.netでは、オブジェクト指向は常にmysqli::query

しかし、私が見たすべての例は、mysqli->query私がいつも使用してきたものと同様に使用します。

今日、私は実際に::クラスの例で使用されているのを見て出くわしました。

だから今、私の質問は、との間に違いは::あり->ますか?"との違いのよう'ですか?

4

2 に答える 2

8

::静的メソッドを呼び出すためのもので->あり、たとえばメソッドです

于 2012-12-16T01:07:44.243 に答える
4

::は「スコープ解決演算子」(適切な名前はPaamayim Nekudotayim)であり、通常、静的(つまり、オブジェクトではなくクラス自体のコンテキストでメソッドを呼び出す)メソッド呼び出しを行うために使用されます。ただし、オーバーライドされたメソッドから親メソッドを呼び出そうとするなど、このルールには例外があります。

parent::foo(); // uses same context as when the method itself was called

また、静的プロパティや定数など、クラスの静的プロパティを参照することもできます。

ClassName::FOO; 
ClassName::$property = "bar";

ただし、 ->は、実際のオブジェクトインスタンスのプロパティまたはメソッドを参照するために使用され、常に演算子の左側にオブジェクトインスタンス($ thisなど)が必要になります。

于 2012-12-16T01:21:47.067 に答える