如何将元素推入名称包含在变量中的数组?

时间:2013-02-13 19:41:51

标签: php variable-variables

我正在创建一个通用的php类,它将值自动加载到数据库中的对象

要设置属性我使用:

$object->$propertyName = $valueFromDB;其中propertyName的值来自mysql字段名..

现在我想以类似的方式将某些内容推送到数组:

这有效..

$object->$arryName = array();

但这不是..

$object->$arryName[] = "test";

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

$object->{$arryName}[] = "test"

大括号改变了操作的顺序,并使PHP在硬括号之前评估变量名。

如果你想做一个关联数组,这会有点复杂:

$object->{$arryName}[$keyname] = "test"

在这种情况下,你可以在$ keyname周围加上大括号,但它完全是可选的。

在相关的说明中..变量变量通常是 - 但不总是 - 一个棘手的东西的标志。对于那些不得不调试,重构,进行任何打算等等的人来说,它们也是一种痛苦。如果你必须使用它们,那很好,但要确保你已经考虑过这些后果。< / p>