开发者社区> 问答> 正文

根据字符串动态创建PHP对象

我想基于由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属性定义的类型的对象 但是没有办法动态地基于字符串创建类型。如何做到这一点?

展开
收起
保持可爱mmm 2020-05-17 19:08:09 505 0
1 条回答
写回答
取消 提交回答
  • 但是没有办法动态地基于字符串创建类型。如何做到这一点?

    您可以轻松自然地做到这一点:

    $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

    2020-05-17 19:08:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载