1. ホーム
  2. php

[解決済み] PHP のクラスメソッドの先頭のアンダースコアはどうなっているのでしょうか?

2022-04-24 16:13:54

質問

さまざまな PHP ライブラリを見ていて気づいたのですが、 多くの人がいくつかのクラスメソッドの前にアンダーバーをひとつだけつけて、 次のようにしています。

public function _foo()

...の代わりに...

public function foo()

最終的には個人の好みになるとは思いますが、この習慣がどこから来るのか、どなたかお分かりになる方はいらっしゃいませんか?

クラスメソッドに protected や private を指定できるようになる前の PHP 4 から引き継がれてきたもので、 「このメソッドをクラスの外から呼び出してはいけない」ことを意味しているのでは、と考えています。 しかし、もしかしたら私がよく知らない場所(言語)に由来しているのかもしれない、あるいは知っておくと得をするような理由があるのかもしれない、とも思ったのです。

ご意見、ご感想、ご感想がありましたら、お願いします。

解決方法は?

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

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