Php Yii ActiveRecord无法定义静态变量
我试图在Yii中删除模型中的静态变量 像这样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",
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;
}