クラス内で、メソッドを呼び出す際、なぜ、$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ランキング
-
「クラス関数」「メンバ関数」...
-
ラッパークラスって何ですか?
-
クラス設計の良い参考書を教え...
-
配列とオブジェクトの違い
-
クラス内でメソッド呼ぶ際、thi...
-
phpのクラスにて別ファイルの変...
-
ユーザ定義関数にデフォルト引...
-
phpで使用不可のクラス名
-
スクリプト言語特有のテクニック
-
正規表現について
-
phpのクラスについて
-
'_'(アンダースコア)の使い方...
-
PHPのif文でその処理を途中で抜...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
【file_exists】ファイルが存在...
-
バッチを用いたフォルダの自動移動
-
現在位置より2つ上のディレク...
-
$_SESSION 有効期限をブラウザ...
-
.phpと.incファイルの違いはな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
ラッパークラスって何ですか?
-
class定義のphpをファイル分割...
-
PHPの名前空間について質問です。
-
配列とオブジェクトの違い
-
phpのクラスにて別ファイルの変...
-
PHP4、PHP5 1ファイル複数クラ...
-
文字連結中の三項演算子について
-
PHP5 コンストラクタや初期化の...
-
プログラムにも慣例みたいなも...
-
(クラス関連)staticキーワー...
-
phpで使用不可のクラス名
-
phpにおける初期化の意味
-
PHPでサブクラスからスーパクラ...
-
クラス
-
[CakePHP2.2] :: の意味と役割
-
phpで時間を増やしていくにはど...
-
PHPでオブジェクト指向開発して...
-
$this->pets[$i]->report();の...
-
ソースファイルの分け方について
おすすめ情報