php - 构建一个组件

标签 php properties yii yii-components

BranchSalaries 是从 CComponent 派生的类。它具有用于 monthyear 属性的 get/set 方法。

以下代码不起作用(更具体地说,不初始化 yearmonth 属性):

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/

相关文章:

php - 使用 Mysql 数据库中的数据自动填充输入

php - HTTPS 导致重定向循环?

javascript - 给定一个属性,如何找到该属性属于哪个对象?

C# 在不创建实例的情况下获取属性值?

php - 使用 Active Record 在 Yii 中调用数据库 View

php - Mysql PHP 用户 '' @'localhost' 访问数据库被拒绝

c# - 反射:Property-GetValue by Class-Type(因此没有实例化的对象)

php - 哪个是最好的 php 框架?

php - Yii Model->search() 条件与 MANY_MANY 关系进行比较

php - 使用 preg_replace 时如何忽略字符串中的某些单词