数组值的用户Yii :: t()值

i´m in a proyect with yii php framework and in muy model i have a public static array with some constante as index like this:

const ESTADO_ACTIVA    = 1;
const ESTADO_RECHAZADA = 2;
const ESTADO_ACEPTADA  = 3;
public static $estados = array(
    self::ESTADO_ACTIVA    => 'Activa',
    self::ESTADO_RECHAZADA => 'Rechazada',
    self::ESTADO_ACEPTADA  => 'Aceptada'
);

I need replace 'Activa' with this

    const ESTADO_ACTIVA    = 1;
const ESTADO_RECHAZADA = 2;
const ESTADO_ACEPTADA  = 3;
public static $estados = array(
    self::ESTADO_ACTIVA    => Yii::t('category','Activa'),
    self::ESTADO_RECHAZADA => Yii::t('category','Rechazada'),
    self::ESTADO_ACEPTADA  => Yii::t('category','Aceptada'),
);

When i try it i get this error:

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

I don´t understand what´s wrong. Thanks for all..

Using this Yii way (like in docs) i would create estados method:

const ESTADO_ACTIVA    = 1;
const ESTADO_RECHAZADA = 2;
const ESTADO_ACEPTADA  = 3;
public static function estados()
{
    return array(
        self::ESTADO_ACTIVA    => Yii::t('category','Activa'),
        self::ESTADO_RECHAZADA => Yii::t('category','Rechazada'),
        self::ESTADO_ACEPTADA  => Yii::t('category','Aceptada'),
    );
}

This way you dont need to instantiate class.

EDIT: If you don't want to evaluate Yii::t at each call, use cached version:

const ESTADO_ACTIVA    = 1;
const ESTADO_RECHAZADA = 2;
const ESTADO_ACEPTADA  = 3;

private static $_estados = null;

public static function estados()
{
    if(null === self::$_estados)
    {
        self::$_estados = array(
            self::ESTADO_ACTIVA    => Yii::t('category','Activa'),
            self::ESTADO_RECHAZADA => Yii::t('category','Rechazada'),
            self::ESTADO_ACEPTADA  => Yii::t('category','Aceptada'),
        );
    }
    return self::$_estados;
}

With this approach Yii::t calls are evaluated only once.

In PHP, you cannot initialize an array with non-constant expressions. Calling Yii::t is such an expression, which means that you have to compute the final form of $estados inside a method body.

For example, you could do that inside the constructor:

public static $estados;

public function __construct()
{
    if (!self::$estados) {
        self::$estados = array(
            self::ESTADO_ACTIVA    => Yii::t('category','Activa'),
            self::ESTADO_RECHAZADA => Yii::t('category','Rechazada'),
            self::ESTADO_ACEPTADA  => Yii::t('category','Aceptada'),
        );
    }
}