Php Yii ActiveRecord无法定义静态变量

Php Yii ActiveRecord无法定义静态变量,php,activerecord,yii,static,Php,Activerecord,Yii,Static,我试图在Yii中删除模型中的静态变量 像这样 class ActiveServices extends MyActiveRecord { public static $periodStr = array(1=>"1 WEEK", 2=>"4 WEEK", 3=>"1 MONTH",

我试图在Yii中删除模型中的静态变量

像这样

class ActiveServices extends MyActiveRecord
{
    public static $periodStr = array(1=>"1 WEEK",
                                     2=>"4 WEEK",
                                     3=>"1 MONTH",
                                     4=>"3 MONTH",
                                     5=>"6 MONTH",
                                     6=>"1 YEAR",
                                    );

    public $periodStrTest = array(1=>"1 WEEK",
                                     2=>"4 WEEK",
                                     3=>"1 MONTH",
                                     4=>"3 MONTH",
                                     5=>"6 MONTH",
                                     6=>"1 YEAR",
                                    );
所以当我打电话的时候

print_r(ActiveServices::periodStr);
我明白了

未定义属性“ActiveServices.periodStr”

如果我打电话 打印(ActiveServices::periodStrTest)

它起作用了

我是不是错过了一些简单的东西

问候

更新:

我先尝试了“受保护的静态”

更新:

下面是MyActiveRecord的代码

<?php
/**
 * This is the custom parent calss for all models
 *
 * This will contain default behaviors
 */


class MyActiveRecord extends CActiveRecord
{
    /**
     * @run functions in behaviours file
     */
    public function behaviors()
    {
        return array(
        'ARAuditTrail'=>
            'application.behaviors.ARAuditTrail',
            );
    }
}

?>

您可以在此处找到CActiveRecord,您需要使用:

ActiveServices::$periodStr
相反:

ActiveServices::periodStr
您还可以创建静态方法(我认为这是多余的):

并调用为:
ActiveServices::getPeriodStr()


UPD:了解有关静态属性的更多详细信息。

我尝试了此操作,返回的是“属性”ActiveServices。“未定义”。这是因为我没有引用我相信我尝试了
var\u dump(ActiveServices:$periodStr)在测试项目中,我已经发布了额外的代码。我认为这是一个Yii的东西,因为它应该工作得很好。我刚刚试过你的类,
var\u dump(ActiveServices::$periodStr)-将日期范围的数组打印到浏览器,没有错误。好的,我稍后再试。
public static function getPeriodStr()
{
    return self::$periodStr;
}