使用动态值访问对象的变量

时间:2014-03-18 09:41:35

标签: php arrays codeigniter object

我在Codeigniter框架内创建一个数据库调用,它将调用三种速率之一(数据库中的单元格),具体取决于传递给数据库调用函数的内容。

这是我的模型函数,它将查询数据库:

public function getRate($options) { 
        $query = "SELECT * FROM staff_rates WHERE staff_id = " . (int)$options['id'] . " AND month = '" . strtolower($options['month']) . "' AND year = " . $options['year'];
        $result = $this->db->query($query);     
        $rate = $options['type'] . "_rate";         
        return $result->result()->{$rate};
    }

如您所见,数组传递给函数,该函数包含一个名为key' type'的值。这种类型可以是三个字符串中的一个,' attrition''运动'和'占用'并且数据库中有三个相应的单元格,' attrition_rate' movement_rate'和' occupancy_rate'。

我只希望此函数从我传递给函数的单元格中返回值,因此您可以在我的代码中看到,我尝试构建我需要的单元格的名称($ rate = $ options [ '键入']。" _rate";)以便将其传回我的控制器。

Severity: Notice

Message: Trying to get property of non-object

Filename: models/assessment_model.php

Line Number: 523

这是引用代码行:

return $result->result()->{$rate};

我是否不可能以这种方式访问​​对象的变量(如使用动态变量)?

由于

1 个答案:

答案 0 :(得分:2)

$ result->结果()

这会返回你的对象数组   你可以用

 $result->row(); 

获得单一结果

相关问题