在cakephp中如何在类变量中使用国际化?

时间:2014-09-11 04:14:25

标签: php 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 ')'

我也尝试'true'作为国际化的第二个参数,但我收到了同样的错误。

当我在类方法

中使用此变量和国际化时
public static function getWispUserAttributeNames()
{
    $options = array(
        'Traffic Limit' => __('Traffic Limit'),
        'Uptime Limit' => __('Uptime Limit'),
        'IP Address' => __('IP Address'),
        'MAC Address' => __('MAC Address')
    );
    return $options;
}

它完美无缺。

是否有办法在类变量中使用国际化?

2 个答案:

答案 0 :(得分:0)

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

我认为你不应该对变量使用“static”。

答案 1 :(得分: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