![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
クラス内で、メソッドを呼び出す際、なぜ、$this->メソッド名();としなければいけないのでしょうか?
疑問内容としては、下記リンク先の人と同じなのですが、
なんで、メソッド名();を普通に呼ぶだけではダメなのでしょうか?
publicクラス内で、publicなメソッドから、publicなメソッドを呼ぶだけだから、普通の呼び出しでイケると思ったのですが…
▽クラス内での関数の呼び出しについて。 - PHPプロ!Q&A掲示板
http://www.phppro.jp/qa/2846
No.1ベストアンサー
- 回答日時:
そういうルールだからというのが簡単な答えですが。
(^^;クラス内のメソッドと関数を区別するためのルールです。
クラス内で定義したメソッドの名前は、そのクラスのインスタンスで有効な名前なので $this-> を付けて自分自身のインスタンスに定義されているメソッドだと指定してあげなければどのクラスの中のメソッドなのか、関数として定義されているモノなのか判らなくなってしまいます。
以下のようなプログラムだと意味が分かって貰えるのではないでしょうか。
関数 hoge が定義されていて、HogeClass の中にもメソッド hoge が定義されています。
関数 hoge はプログラムのどこからでも呼び出せる関数ですから HogeClass の中からも呼び出せなければいけません。
HogeClass の中の hoge メソッドは関数 hoge と区別されなければいけないので、区別するための識別子が必要なのです。
<?php
function hoge () {
return "b";
}
class HogeClass {
public static function hoge () {
return "a";
}
public static function hoge2 () {
return hoge();
}
}
echo HogeClass::hoge2(); // b が表示される
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- 友達・仲間 学生さんに質問です。 同じクラスの人を女子同士ならお互い下の名前を呼び捨てで呼び、男子同士ならお互い 2 2023/03/08 19:33
- 韓国語 韓国人同士の呼びかけ方 2 2022/06/16 21:54
- モテる・モテたい 好きな人に名前で呼ばれたい… 3 2022/06/04 14:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
phpのオブジェクト指向でつまづ...
-
onedrive にexcelファイルをア...
-
バッチを用いたフォルダの自動移動
-
MIB取得について
-
csvファイルの読込みとソート
-
$_SESSION 有効期限をブラウザ...
-
one drive のアップロード失敗...
-
PHPのif文でその処理を途中で抜...
-
VBSの「MsgBox」について
-
存在しないメールアドレスかど...
-
URLの変わらないページをPHPで...
-
imgタグでのphpの呼び出しについて
-
$_SERVER と $_ENV の違い
-
HYのAM11:00のラップの部分の歌...
-
phpでクラスのメソッドで同名の...
-
LinuxでのPHP、Configure Comma...
-
FTPでのファイルとディレクトリ...
-
絶対パス?絶対アドレス?意味...
-
PHPExcel処理速度が遅い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
ラッパークラスって何ですか?
-
class定義のphpをファイル分割...
-
PHPの名前空間について質問です。
-
配列とオブジェクトの違い
-
phpのクラスにて別ファイルの変...
-
文字連結中の三項演算子について
-
PHP4、PHP5 1ファイル複数クラ...
-
PHP5 コンストラクタや初期化の...
-
プログラムにも慣例みたいなも...
-
(クラス関連)staticキーワー...
-
phpで使用不可のクラス名
-
phpにおける初期化の意味
-
PHPでサブクラスからスーパクラ...
-
phpで時間を増やしていくにはど...
-
クラス
-
[CakePHP2.2] :: の意味と役割
-
Objectの型チェック
-
'_'(アンダースコア)の使い方...
-
$this->pets[$i]->report();の...
おすすめ情報