下記のような親-子-孫の関係のクラスを定義しています。
PHP
1class Parent{ 2 function methodA(){ 3 ... 4 } 5} 6 7class Child extends Parent{ 8 function methodA(){ 9 parent::methodA(); 10 /* 11 Childでのみ行う処理 12 */ 13 } 14} 15 16class GrandChild extends Child{ 17 function methodA(){ 18 Parent::methodA(); 19 } 20}
ChildクラスではmethodA()で独自の処理を行っていますが、GrandChildメソッドではその処理を行いたくないと考えています。
そこで「親の親」メソッドを呼び出す方法を調べるうちに、「クラス名::インスタンスメソッド()」の呼び出すことができることを知りました。
通常、この形式はstaticメソッドを呼び出す際の記述法だと認識しています。
スコープ演算子のマニュアルを見てもユーザーノートにサンプルはありますが、インスタンスメソッドの呼び出しに使う場合について深く言及している記述は見つけられませんでした。
実際にこの方法で期待通りに動作する事は確認していますが、有効範囲がどの程度なのかが理解できずにいます。
(継承クラス内のみ、クラス外でも有効、等)
有効範囲やその他利用する上での注意点、参考になるURL等をご存知でしたらご教示ください。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/25 09:27
2016/11/25 09:41
2016/11/25 09:46
2016/11/25 10:11
2016/11/25 10:14
2016/11/25 11:00 編集