2012-04-07 3 views
0

나는CodeIgniter 컨트롤러에서 예기치 않은 T_VARIABLE 오류가 발생하는 이유는 무엇입니까?

class MyController extends CI_Controller { 
    private $data = array(
     'importantValueToPassToViews' => $this->Animal->getPrey(), 
    ); 
    ... 

내가 'importantValueToPassToViews' (세 번째 줄)로 시작하는 줄에 오류가 점점 오전 시작 코드 점화에서이 컨트롤러를 가지고있다.

Parse error: syntax error, unexpected T_VARIABLE 

왜?

+0

있습니까? – Gabber

+0

동물은 자동로드 모델입니다. –

+0

컨트롤러가 구성 될 때까지 자동로드되지 않습니다. 적어도 두 가지 이유가 있습니다. P – landons

답변

4

클래스 속성 정의에서 함수를 호출 할 수 없기 때문에. 상수 또는 상수 배열로 설정할 수 있습니다.

당신은 생성자에서 그렇게해야합니다 : 당신은 동물 필드가 아닌 클래스 확인

<?php 
class MyController extends CI_Controller { 

    private $data = array(); 

    public function __construct() 
    { 
     parent::__construct(); 

     $this->data['importantValueToPassToViews'] = $this->Animal->getPrey(); 
    } 
    // ... 
} 
+0

감사합니다. 그게 원래의 PHP 오류를 해결합니다. 그러나'$ this-> load-> view ('viewPrey', $ data);'를 사용하여 뷰에'$ data'를 전달하면 뷰에서'$ importantValueToPassToViews'라는 변수에 접근 할 수 없습니다. 그것은 분명히 존재하지 않습니다. 이 메서드는 생성자 함수의 범위를 벗어나는 $ data 변수를 변경합니까? –

+0

아니, 작동해야합니다. '$ this-> data'를 대신 전달하십시오. – landons

+1

그리고 자동로드하는 방법을 어떻게 알지만 데이터를 CI의보기로 전달하는 방법을 모르십니까? : P – landons

관련 문제