2014-09-11 21 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它顯示錯誤:

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

我也嘗試「真」作爲internationlization第二個參數,但同樣的錯誤,我收到。

當我在課堂方法

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

得到了相同的概率但是沒有找出原因。 – 2014-09-11 04:20:12

+0

我認爲全局變量不會調用函數__()。祝你好運! – tungbk29 2014-09-11 04:41:14

回答

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

這個問題是別的。 – 2014-09-11 09:04:27

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