• ベストアンサー

'_'(アンダースコア)の使い方について

グローバル関数や__constructなどの決め事以外で文字列の頭に'_'(アンダースコア)を付けることがありますが、あれには何か”暗黙の了解”のようなルールがあるのでしょうか? 例えばクラス名で class _Member 関数名で public function __toString() 変数名で $this->_member などなど。 初心者なもので、よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#140082
noname#140082
回答No.2

主にシステムで使用する変数は、そのようになっている場合が多いです。 内部変数ならば何でも問題ないですが、グローバル変数やグローバル関数などは、重複が許されません。 かと言って、わかりづらい変数名では、いざ使う時に使いづらいです。 と、言うことでなるべく重複しないように暗黙のルールで先頭に1つ2つアンダースコアを付けています。 逆に言えば、ユーザーは先頭にアンダースコアを付けなければ、まずシステム変数・システム関数などと重複することはまず無いと言うことです。 (但し、普通に公開されているシステム変数・システム関数は別です)

その他の回答 (2)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.3

フレームワークによっては暗黙ではなくルールがあります。 http://framework.zend.com/manual/ja/coding-standard.naming-conventions.html オブジェクト内で "private" あるいは "protected" と宣言されているメソッドについては、メソッド名の最初にアンダースコア 1 文字をつけなければなりません。 __toStringはマジックメソッドという特殊関数です。 http://php.net/manual/ja/language.oop5.magic.php

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

文字かアンダースコアで始まり、その後に任意の数の文字・ 数字・あるいはアンダースコアが続けばOKのようです。 http://www.php.net/manual/ja/userlandnaming.php ただアンダースコア自体が特殊な用法で使われる可能性が否定できないことを考えれば 常識的に接頭文字としてつかう選択肢は排除されてしかるべきだと思います

関連するQ&A

専門家に質問してみよう