2016-08-26 10 views
1

私はOOPの新機能です。私は、派生したクラスが基本クラスの公開メンバーと保護されたメンバーにアクセスできることを読んだことがあります。laravelの基本的な継承

A.php

<?php 
namespace App\Http\Controllers; 
class A extends Controller 
{ 
     public $x=5; 
     public function index() 
     {...} 
} 

B.php

<?php 
namespace App\Http\Controllers; 
class B extends A 
{ 
    public function index() 
    { 
      print_r($x); 
    } 
} 

$x派生クラスからアクセスされない理由は? 私はこのルートを持っている:

Route::get('/B/index','[email protected]'); 

私はエラーを得た:

undefined variable x.

+0

助けを願っています。それをメソッドでラップする必要があります。また、質問を更新し、受け取ったエラーを教えてください。 – linuxartisan

+0

@linuxartisan私は未定義の変数xを受け取ります。 – Steve

答えて

3

は、あなたのコード内で次のように変更します。

class B extends A 
{ 
    public function get() 
    { 
     echo $this->x; // will echo the value in variable $x; 
    } 
} 

$obj = new B; 
$obj->get(); 
3

を怒鳴るように、コードを変更してください。結果が表示されます。

class A 
{ 
     public $x=5; //or protected $x=5; 
     public function index() 
     { 
     echo "A"; 
     } 
} 

class B extends A 
{ 
    public function index() 
    { 
     echo $this->x; 
    } 

} 

$classB = new B(); 
$classB->index(); 

あなたが使用することができます:http://phptester.net/は、テストするために、オンライン

私はあなたがクラス 'B'の体から直接関数を呼び出しているあなた

+0

echo "A"を実行する場合。 $ classA = new A();を使用してください。 $ classA-> index();感謝! – hunglevan

関連する問題