php - 如何从变量名动态设置对象的属性?

标签 php oop

我正在尝试使用数据库中的变量填充模板。数据如下所示:

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但到目前为止还没有运气!

最佳答案

$template->{$field_name}

关于php - 如何从变量名动态设置对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3138400/

相关文章:

php - 选择时间戳早于

php - WWW 到非 WWW 使用 PHP 重定向

PHP int被MySQL转换为不同的字符串

Java 类 : I need to add a new field of type String to a class. 我应该扩展(创建新的派生类)还是简单地添加新字段?

javascript - 定义 Javascript 原型(prototype)

php - 使用 php 和 mysql 从多个数组表单输入插入数据

php - 如何在 dompdf 中应用 Bootstrap 样式

c# - 调用基本构造函数时重用初始化方法

javascript - “Arc 不是构造函数”错误

java - 关于Java中父类(super class)变量引用子类对象