我想基于由MySQL数据库中的字符串定义的类型在PHP中创建一个对象。数据库表具有以下列和样本数据:
id | type | propertyVal ----+------+------------- 1 | foo | lorum 2 | bar | ipsum ...使用PHP数据类型
class ParentClass {...} class Foo extends ParentClass {private $id, $propertyVal; ...} class Bar extends ParentClass {private $id, $propertyVal; ...} //...(more classes)... 我只想使用一个查询,通过ID选择一行,然后创建一个类型为Object的对象,该对象定义表的type列,并将SELECTed行中的其他列分配给新创建的对象。
我当时在想使用:
mysql_fetch_object() 读取类型属性 创建具有由type属性定义的类型的对象 但是没有办法动态地基于字符串创建类型。如何做到这一点?
但是没有办法动态地基于字符串创建类型。如何做到这一点?
您可以轻松自然地做到这一点:
$type = 'myclass';
$instance = new $type; 如果您的查询返回的是关联数组,则可以使用类似的语法分配属性:
// build object $type = $row['type']; $instance = new $type;
// remove 'type' so we don't set $instance->type = 'foo' or 'bar' unset($row['type']);
// assign properties foreach ($row as $property => $value) { $instance->$property = $value; }来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。