2

PHPライブラリのドキュメントで両方が使用されているのを見たことがありますが(一見互換性があります)、狂気への方法とそれぞれを使用する必要があるかどうか疑問に思っていましたか?(または、それらが別の意味である場合、ドキュメントで見逃したニュアンス)

例:

ClassName#foo()  // a method
ClassName::bar() // a method
ClassName::baz   // a property

私は(まだ)誰かClassName#quxがプロパティに使用しようとしているのを見たことがありませんが、おそらくそれも可能です!

願わくば、このスレッドが人々をまっすぐで狭くするのに役立つことを願っています!

前もって感謝します

PSこれをGoogleで検索するのは難しいです。"#" = "ハッシュ" = "ポンド" および "::" = "ダブル コロン" = "T_PAAMAYIM_NEKUDOTAYIM"... そして、もちろん、"ハッシュ" はそれ自体にも意味があります。

編集:さらなる質問は、プロパティと変数をまたはとして文書化することが正常/正しいかどうかですClassName::fooClassName::$fooつまり、先頭の$の有無にかかわらず)

4

2 に答える 2

2

PHP の場合でさえ、ひねくれているとよく言われます。どんな文脈でも絶対にやらないでください。

于 2013-07-26T14:46:21.720 に答える
1

おそらく、文字通り で呼び出すことができる実際の静的メソッドと、 のようなオブジェクト インスタンスを必要とするインスタンス メソッドとFoo::bar()$foo->bar()のあいまいさを解消するためです。それは私が考えることができる唯一の賢明な説明であり、私が知っているどのような状況でも公式の基準ではありません.

于 2013-07-26T14:42:34.907 に答える