我正在尝试使用数据库中的变量填充模板。数据如下:
id field content
1 title New Website
1 heading Welcome!
1 intro This is a new website I have made, feel free to have a look around
2 title About
2 heading Read all about it!
我需要对该数据执行的操作是根据$template
列设置field
对象的属性,并将所述值设置为content
列中的值;例如对于id = 1
$template->title = 'New Website';
$template->heading = 'Welcome!';
$template->intro = 'This is a new websi...';
我有一个数组中的数据,我可以很容易地循环它但我无法弄清楚如何让属性成为另一个变量的名称。我尝试过变量变量方法,但无济于事。这适用于对象属性吗?
这是我到目前为止所得到的:
foreach($data as $field)
{
$field_name = $field['field'];
$template->$$field_name = $field['content'];
}
我也尝试过使用$template->${$field_name}
和$template->$$field_name
,但到目前为止还没有运气!
答案 0 :(得分:8)
$template->{$field_name}
答案 1 :(得分:3)
你已经领先于自己了。
尝试:
$template->$field_name;
为什么这样做?
$foo = 'bar';
$object->bar = 1;
if ($object->$foo == $object->bar){
echo "Wow!";
}
答案 2 :(得分:0)
使用
$template->{$field_name} = $field['content'];
或只是
$template->$field_name = $field['content'];