人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPにおいて、

parent::hoge();

で親クラスのメソッドを使用できますが、
親の親のクラスのメソッドを使用しようと、

parent::parent::hoge();

とするとエラーになります。

親クラスより上位のクラスには手を入れられないため、
子クラスのメソッド内で、親の親のクラスのメソッドを呼ぶ方法があれば、
教えて頂きたいです。


●質問者: FnuLnu
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:hoge PHP エラー クラス メソッド
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● sphire
●60ポイント

親クラスに手を入れられるのであれば、親クラス内に親の親クラスのメソッドを呼ぶメソッドを実装してはいかがでしょうか(ややこしい)

<?php

class OyaNoOya {
 public function Hoge(){
 echo 'OyaNoOya::Hoge()', "\n";
 }
}

class Oya extends OyaNoOya {
 public function Hoge(){
 echo 'Oya::Hoge()', "\n";
 }
 public function OyaHoge(){
 parent::Hoge();
 }
}

class Ko extends Oya {
 public function Hoge(){
 echo 'Ko::Hoge()', "\n";
 }
 public function OyaHoge(){
 parent::Hoge();
 }
 public function OyaNoOyaHoge(){
 parent::OyaHoge();
 }
}

Ko::Hoge();
Ko::OyaHoge();
Ko::OyaNoOyaHoge();
◎質問者からの返答

ここで言う、OyaクラスはPEARライブラリのクラスなので、

極力手を加えたくないという事情があります。

Oyaではなく、OyaNoOyaを継承してKoを作るとか、

OyaNoOyaのHogeをコピペでKoに移植するであるとか、

いくつか回避方法は思いついたのですが、

やはり言語機能としては、用意されてないという事ですかね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ