2016-03-18 19 views
1

私は、次のPHPのクラスがあります。phpの属性を持つ子オブジェクトの親メソッドへのアクセス?

class a { 
    public function vw($xc) { 
     return $xc; 
    } 
} 

class b extends a { 
    public function wv() { 
     echo vw() . 'from b via wv'; 
    } 
} 

$d = new a; 
echo $d->vw('this is a'); 
$c = new b; 
echo $c->vw('this is a from b via a'); 
$c->wv(); 

を私は取得しています出力は次のようになります。

this is a 

はなぜecho $c->vw('this is a from b via a');c->wv();の出力を得ていないのですか?

クラス "B" で
+1

あなたはコードをフォーマットし、エラー(そこではありません 'test'や' T 'クラス)を修正してくださいことはできますか? – Jan

+0

あの@janについて申し訳ありません –

+0

* "なぜecho $ c-> vwの出力を得られないのですか?(これはaからbからaへ); c-> wv();" "*スクリプトは 'echo vw()'行に致命的なエラーを引き起こします。 'からbからwv'; '。関数 'vw()'は存在せず、それはあなたのスクリプトをクラッシュさせます。 [エラー報告]を有効にする(http://php.net/manual/en/function.error-reporting.php)。閉じた目で道路を横切ってはいけません! – axiac

答えて

2

をお試しくださいparent::vw()。しかし、メソッドvwのクラスaにはパラメータが必要なので、このコードスニペットはまったく機能しません。しかし、あなたは親キーワードを使用する考えを得るべきです。

class a { 
    public function vw($xc) { 
     return $xc; 
    } 
} 

class b extends a { 
    public function wv() { 
     echo parent::vw() . 'from b via wv'; 
    } 
} 

$d = new a; 
echo $d->vw('this is a'); 
$c = new b; 
echo $c->vw('this is a from b via a'); 
$c->wv(); 

http://php.net/manual/en/keyword.parent.php

https://3v4l.org/0MkQI

0

、あなたはとしての機能のVW記述する必要があります:あなたの最後の行には、$ C-> WV()の呼び出しを

public function wv(){ 
    echo $this->vw() . "from b via wv\n"; 
    } 

ほかには、パラメータを欠い: $ C- > wv( "私はパラメータがありません");

0

例えば、あなたがparent::を経由して親のメソッドにアクセスすることができ、この

 class a { 
      public tt; 

       public function vw($xc){ 
        $this->tt = $xc; 
      return $this->tt; 
     } 
} 

class b extends a 
{ 
    public function(){ 
    return $this->tt. 'from b via wv' 
} 
} 
関連する問題