【发布时间】:2018-10-13 20:51:56
【问题描述】:
我将所有网站设置保存在一个名为 mh_settings 的表中。 mh_setting表有2个字段,分别是name varchar(255)和type varchar(255)。
在核心文件夹和构造函数中的 MY_Controller.php 中,我将名称和密钥读入 config_item(),如下所示:
$appConfigOptions = $this->MH_settings_model->mh_get_configurations();
if($appConfigOptions) {
foreach($appConfigOptions as $appConfigOption)
{
$this->config->set_item($appConfigOption->key,$appConfigOption->value);
}
}
模型获取配置项如下:
class MH_settings_model extends CI_Model {
protected $table;
public function __construct() {
$this->table = 'mh_settings';
}
public function mh_get_configurations() {
$query = $this->db->get($this->table);
return $query->result();
}
}
出于某种原因,即使我在 FALSE 的数据库中键入带有值的 cast mh_site_up_public,它似乎总是将其变为字符串。
if(((boolean) $this->config->item('mh_site_up_public')) == FALSE) {
show_error($this->config->item('mh_site_down_public_message'));
}
我尝试使用 (bool) 而不是 (boolean)。
我试着玩弄 == 和 ===
有什么想法吗?
【问题讨论】:
-
mh_site_up_public的实际值是多少?如果它是一个字符串,上面写着FALSE,那么它就是真的。只有空字符串(或带有0的字符串)是虚假的,并将被转换为实际的false。演示:3v4l.org/7t5dc -
在数据库中为 FALSE。当我回显 $this->config_item('mh_site_up_public');在视图中,我也得到了 FALSE。
标签: php codeigniter