BranchSalaries
是从 CComponent 派生的类。它具有用于 month
和 year
属性的 get/set 方法。
以下代码不起作用(更具体地说,不初始化 year
和 month
属性):
new BranchSalaries(array('id'=>'branch_salaries', 'year'=>$year, 'month'=>$month));
创建一个可以通过数组传递给构造函数来初始化的类的最简单方法是什么?
Correction BranchSalaries
不是直接从 CComponent 派生,而是从 CDataProvider 派生。
最佳答案
function __construct($arr){
foreach($arr AS $key=>$value){
$this->$key = $value;
}
}
您需要一个可以处理数组的构造函数。
编辑:如果您需要使用 setter :(这假设 setter 类似于 setId() 而不是 setid()
function __construct($arr){
foreach($arr AS $key=>$value){
$method = "set".ucfirst($key);
$this->$method($value);
}
}
关于php - 构建一个组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17048496/