2014-09-11 4 views
1

cakephp를 사용하고 있으며 클래스 변수에서 국제화를 사용할 때 오류가 발생합니다.cakephp에서 클래스 변수에서 국제화를 사용하는 방법은 무엇입니까?

내 클래스입니다 :

class Util extends Object 
{ 
    public static $options = array(
     'Traffic Limit' => __('Traffic Limit'), 
     'Uptime Limit' => __('Uptime Limit'), 
     'IP Address' => __('IP Address'), 
     'MAC Address' => __('MAC Address') 
    ); 
} 

내가 수업 시간에 국제화를 사용하는 경우는 표시 varriable 오류 : 나는 internationlization에서 두 번째 매개 변수 그러나 동일한 오류로도 시도 '사실'내가받은

Error: syntax error, unexpected '(', expecting ')' 

. 내가 클래스 메소드

public static function getWispUserAttributeNames() 
{ 
    $options = array(
     'Traffic Limit' => __('Traffic Limit'), 
     'Uptime Limit' => __('Uptime Limit'), 
     'IP Address' => __('IP Address'), 
     'MAC Address' => __('MAC Address') 
    ); 
    return $options; 
} 

국제화와이 변수를 사용할 때

그것은 perfectally 작동합니다.

클래스 변수에 국제화를 사용하는 방법이 있습니까?

+0

이 같은 확률값을 가지고 그러나 그 이유를 알지 못했습니다. –

+0

전역 변수가 함수 __()을 호출하지 않는다고 생각합니다. 행운을 빕니다! – tungbk29

답변

0
class Util extends Object 
    { 
     public $options = array(
      'Traffic Limit' => __('Traffic Limit'), 
      'Uptime Limit' => __('Uptime Limit'), 
      'IP Address' => __('IP Address'), 
      'MAC Address' => __('MAC Address') 
     ); 
    } 

변수에 "정적"을 사용하지 않아도됩니다.

+0

질문은 다른 것입니다. –

0

당신은 PHP에서 이니셜 복잡한 식을 사용할 수 없습니다, 그래서 다음 표현이 잘못 상관없이 그것은 정적의 여부 :

public static $options = array(
    'Traffic Limit' => __('Traffic Limit'), 
    'Uptime Limit' => __('Uptime Limit'), 
    'IP Address' => __('IP Address'), 
    'MAC Address' => __('MAC Address') 
); 

하지만 당신은 정적 사건에 대한 트릭을 수행 할 수 있습니다

클래스를 기술 한 후 :

class Util extends Object 
{ 
    public static $options = array(); 
} 

//do assign, at the bottom of file 

Util::$options = array(
    'Traffic Limit' => __('Traffic Limit'), 
    'Uptime Limit' => __('Uptime Limit'), 
    'IP Address' => __('IP Address'), 
    'MAC Address' => __('MAC Address') 
); 

이 참조 : How to initialize static variables

관련 문제