好的,所以我正在慢慢地从 Procedural 迁移到 OOP,除了一件事之外,我发现这一切都非常简单。
我曾经使用这种方法从一个简单的两列设置表中提取我的设置数据,该表包含每个设置的一行,用“设置”和“值”字段定义:
$query = mysql_query("SELECT * FROM `settings`");
while ($current_setting = mysql_fetch_array($query)) {
$setting[$current_setting['setting']] = $current_setting['value'];
}
如您所见,我对其进行了操作,以便可以简单地使用 $setting['any_setting_name'] 在该设置的行中显示相应的“值”。我不确定这是否是一种愚蠢的做事方式,但无论如何,我都会继续前进..
但是,自从转向面向对象的 PHP 之后,我真的不知道如何做类似的事情。
$query = $mysqli->query("SELECT * FROM `settings`");
while ($current_setting = $query->fetch_object()) {
echo $current_setting->setting; // echo's each setting name
echo $current_setting->value; // echo's each setting value
}
如您所见,我完全能够检索数据,但我想要的是以后能够以以下形式使用它:$setting->setting_name;
这将从setting
等于 'setting_name' 的行中回显 VALUE。
所以基本上如果我的设置表中有一行setting
是“site_url”并且value
是“ http://example.com/ ”,我想要 $setting->site_url; 包含' http://example.com/ '.. 或具有相同效果的东西..
有谁可以帮我离开这里吗?我现在在砖墙上..可能是我忽略了一些非常愚蠢的事情..