使用MVC和PHP函数的最佳实践OOP?

时间:2017-01-10 19:58:12

标签: php oop model-view-controller

OOP的新手,所以我想弄清楚最佳实践。此代码基于我添加的现有脚本。

大多数有这个问题的主题都告诉海报代码:

function ($arg1, $arg2){
 //some code
}

并致电:

function($a1, $a2);

我有一个基于OOP的功能(有效),但它看起来并不正确,当我尝试将其称为建议的方法时,我得到:

  

数组到字符串转换....在线..数组

这是我收集输出的(工作)函数:

    public function getMail($type, $id = 0) {
        $query = $this->db->query("SELECT * FROM km_mail WHERE id = '" . (int)$id . "' AND `type` = '" . $this->db->escape($type) . "'");

        foreach ($query->rows as $result) {
            $mail_data[$result['title']] = $result['value'];
        }

    return $mail_data;
}

这是工作(但很难看)的部分 - 这会返回请求的数据库列(但看起来不对?):

$this->model_setting_mail->getMail('order')['update_link'];

当我尝试像这样请求列时,会发生数组到字符串转换错误:

$this->model_setting_mail->getMail('order','update_link');

在我的示例中,订单 = $ type, update_link = $ result [' value']并且$ id = 0是默认值,除非$ id已通过。

1 个答案:

答案 0 :(得分:1)

您展示的第一个示例是从函数返回的值中选择数组元素的简便方法。

$this->model_setting_mail->getMail('order')['update_link'];

与:

相同
$result = $this->model_setting_mail->getMail('order');
print $result['update_link'];

第二个例子是将两个值传递给函数。

他们完全不同。