PHP クラスメソッドの先頭にアンダースコアを付けるとどうなるのでしょうか? 質問する

PHP クラスメソッドの先頭にアンダースコアを付けるとどうなるのでしょうか? 質問する

さまざまなPHPライブラリを調べていると、多くの人がクラスメソッドの前に1つのアンダースコアを付けることを選んでいることに気づきました。たとえば、

public function _foo()

...の代わりに...

public function foo()

最終的には個人の好みによるものだと理解していますが、この習慣がどこから来るのか、何か知見をお持ちの方がいらっしゃるでしょうか。

私の考えでは、これはおそらく、クラス メソッドが protected または private としてマークされる前の PHP 4 から引き継がれており、「このメソッドをクラス外から呼び出さないでください」ということを示す手段です。ただし、これは私がよく知らないどこか (言語) で発生したものであるか、その背後に知っておくと役立つ正当な理由があるかもしれないとも思いました。

ベストアンサー1

これは、オブジェクト指向 PHP (PHP 4) の古き悪しき時代から来ています。その OO の実装はかなり悪く、プライベート メソッドのようなものは含まれていませんでした。それを補うために、PHP 開発者はプライベートにすることを意図したメソッドの前にアンダースコアを付けました。古いクラスの中には、アンダー/**private*/ __foo() {スコアに余分な重みを付けているものがあります。

開発者がすべてのメソッドの前にアンダースコアを付けるという話は聞いたことがないので、その原因を説明することはできません。

おすすめ記事