许多应用程序在数据库中存储有关对象的信息。问题是:如何在 PHP 代码中表示该数据?对象关系映射 (ORM) 框架可以提供帮助,但它们可能很复杂,而且可能并不总是必要的。
这个答案提供了一个简单的解决方案,可以根据存储在 MySQL 数据库中的字符串动态创建 PHP 对象。
问题:
给定一个具有以下模式的 MySQL 表:
id | type | propertyVal ----+------+------------- 1 | foo | lorum 2 | bar | ipsum
其中 id 是唯一标识符,type 是对象类型(例如,foo、bar),propertyVal 是一个属性值。
任务是创建类型列中定义的动态类型的 PHP 对象,并用表中相应行的数据填充它们.
解决方案:
在 PHP 中,您可以使用以下语法动态创建给定类型的对象:
$type = 'myClass'; $instance = new $type;
假设查询返回一个关联数组,您可以使用类似的语法为对象分配属性:
foreach ($row as $property => $value) { $instance->$property = $value; }
实现:
示例:
$row = $result->fetch_assoc(); $type = $row['type']; unset($row['type']); $instance = new $type; foreach ($row as $property => $value) { $instance->$property = $value; }
这种方法允许您从数据库创建动态对象,而不需要复杂的 ORM 框架。对于需要在 PHP 代码中将数据库数据表示为动态对象的许多场景来说,这是一个简单而有效的解决方案。
以上是如何从 MySQL 字符串动态创建 PHP 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!