[解決済み] PHP のクラスメソッドの先頭のアンダースコアはどうなっているのでしょうか?
2022-04-24 16:13:54
質問
さまざまな PHP ライブラリを見ていて気づいたのですが、 多くの人がいくつかのクラスメソッドの前にアンダーバーをひとつだけつけて、 次のようにしています。
public function _foo()
...の代わりに...
public function foo()
最終的には個人の好みになるとは思いますが、この習慣がどこから来るのか、どなたかお分かりになる方はいらっしゃいませんか?
クラスメソッドに protected や private を指定できるようになる前の PHP 4 から引き継がれてきたもので、 「このメソッドをクラスの外から呼び出してはいけない」ことを意味しているのでは、と考えています。 しかし、もしかしたら私がよく知らない場所(言語)に由来しているのかもしれない、あるいは知っておくと得をするような理由があるのかもしれない、とも思ったのです。
ご意見、ご感想、ご感想がありましたら、お願いします。
解決方法は?
オブジェクト指向PHP(PHP 4)の悪い時代のものです。 そのオブジェクト指向の実装はかなりひどいもので、プライベートメソッドのようなものを含んでいませんでした。 それを補うために、PHP の開発者は、プライベートであることを意図したメソッドの前にアンダースコアをつけていました。 古いクラスでは
/**private*/ __foo() {
というように、重み付けをします。
開発者がすべてのメソッドの前にアンダースコアを付けるというのは聞いたことがないので、何が原因なのか説明できません。
関連
-
[解決済み】move_uploaded_fileは、「failed to open stream: Permission denied" というエラーが出る
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み】既に開始されているPHPセッション【重複あり
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み】書き込みコンテキストでメソッドの戻り値を使用することができない
-
[解決済み] PHPでユーザー入力をサニタイズするにはどうすればよいですか?
-
[解決済み] PHPを使って現在の年を取得するにはどうすればよいですか?
-
[解決済み] PHPで完全なURLを取得する
-
[解決済み] JavaScriptで数値を文字列に変換するのに最適な方法は何ですか?
-
[解決済み] Androidのチュートリアルで、ほとんどのフィールド(クラスメンバー)が`m`で始まるのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み] php5パッケージのインストール候補がない (Ubuntu 16.04)
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み】警告:mysql_fetch_array()はパラメータ1がリソースであることを期待、ブール値は[重複]で与えられる]
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み】PHPのクラスが見つからないが、インクルードされている
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法