【发布时间】:2017-01-10 19:58:12
【问题描述】:
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');
在我的示例中,order = $type, update_link = $result['value'] 和 $id = 0 是默认值,除非传递了 $id。
【问题讨论】:
-
对于一些性能提示。如果您获取一些东西并构建一个数组,您会将所有数据库条目放入内存中。如果您有很多条目并且内存限制不够高,这可能会导致问题。最好直接处理输出。
-
谢谢,这张表只有大约 30 行左右,不会增长。了解有用!
-
那么这不是一个大问题,但是如果您有数千个条目并且它们增加了您的苹果运行一天超过您的内存限制并且您的站点处于脱机状态的可能性。但是有 30 个条目不是问题。
标签: php oop model-view-controller