2017-04-10 4 views
0

$ this는 $ this 내에서 머리를 감싸는 것처럼 보입니다!

뷰를로드하는 codeigniter 함수를 에뮬레이트하려고하는데 분명히 누락되었습니다.

$load = new Load; 
$load->view(); 

내가 예상되는 응답을 얻을 :
class Load{ 

    public function __construct(){ 

    } 

    public function view(){ 
     echo "Hello"; 
    } 

    public function files(){ 

    } 

    public function plugins(){ 

    } 

} 


$this->load->view(); 

내가 사용하지만 때 다음

Fatal error: Using $this when not in object context

가 발생합니다. Hello

Codeigniter에서는 작동하지만 내 간단한 스크립트에서는 작동하지 않는 이유는 무엇입니까? 코드에서 필자는 이미 봤 및 SO 검색

..

+2

자신이 질문 :'$ 첫 번째 코드 예제에 해결 this'해야하는지 개체를? – arkascha

+4

클래스 컨텍스트 내에서 $ this를 사용할 수 없습니다. –

+1

이전 주석을 지우려면'$ this'는 인스턴스화 된 객체를 참조하며 해당 객체 내에서만 사용할 수 있습니다. 또는 다르게 말하면,'$ this'는 현재 객체의 축약 형입니다. 첫 번째 예제에서 '$ this'는 클래스 컨텍스트 외부에 있으며로드 클래스의 인스턴스를 만들지 않았습니다. – WillardSolutions

답변

0

당신이하지 않는 클래스 $이를 사용합니다. 그래서 그것은 정말로 대상이 아닙니다.

클래스 개체를 사용하기 전에 만들어야합니다.

또는 다른 클래스를 사용하려는 경우, 그냥 같은 것을 할 :

class PreLoad 
{ 
    public load; 

    public function __construct() 
    { 
     $this->load = new Load(); 
    } 

    public function show() 
    { 
     $this->load->view(); 
    } 
} 

(new PreLoad())->show();