0

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

要设置属性,我使用这个:

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

现在我想以类似的方式将一些东西推送到数组上:

这有效..

$object->$arryName = array();

但这不..

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

我该如何解决这个问题?

4

1 回答 1

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

花括号改变了操作的顺序,并使 PHP 在硬括号之前计算变量名。

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

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

在这种情况下,您可以在 $keyname 周围放置花括号,但这完全是可选的。

在相关的说明中.. 变量变量通常 -但不总是- 是一些古怪的迹象。对于那些必须调试、重构、进行任何 grepping 等的追随者来说,它们也是一种痛苦。如果你必须使用它们,很好,但请确保你已经考虑了后果。

于 2013-02-13T19:47:22.713 回答