2016-08-26 14 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/ 테스트 온라인

I 당신은 클래스`B`의 몸에서 직접 함수를 호출하면

+0

echo "A"를 실행하려면. $ classA = new A();를 사용하십시오. $ classA-> index(); 감사! – hunglevan