Php 如何将一个元素推送到一个';s的名称包含在变量中?

Php 如何将一个元素推送到一个';s的名称包含在变量中?,php,variable-variables,Php,Variable Variables,我正在制作一个通用的php类,它可以自动将值从数据库加载到对象中 要设置属性,我使用以下方法: $object->$propertyName=$valueFromDB其中propertyName的值来自mysql字段名 现在我想以类似的方式将某些内容推送到阵列上: 这很有效 $object->$arryName=array() 但这不是 $object->$arryName[]=“测试” 我怎样才能解决这个问题 $object->{$arryName}[] = "test" 大括号改变了

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

要设置属性,我使用以下方法:

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

现在我想以类似的方式将某些内容推送到阵列上:

这很有效

$object->$arryName=array()

但这不是

$object->$arryName[]=“测试”

我怎样才能解决这个问题

$object->{$arryName}[] = "test"
大括号改变了操作顺序,使PHP在硬括号之前计算变量名

如果要执行关联数组,这会变得更复杂一些:

$object->{$arryName}[$keyname] = "test"
在本例中,可以在$keyname周围放置大括号,但这完全是可选的


与此相关的是。。可变变量通常是——但并非总是——某种扭曲的迹象。无论是谁,如果你需要调试、重构、做任何修改等,它们都会让你感到痛苦。如果你必须使用它们,可以,但要确保你已经考虑了后果。

arrayPush($object->$arryName,'test')
?很有趣,谢谢。。除了在我正在做的任务中使用变量(自动加载带有mysql DB字段的模型类)之外,还有其他方法可以建议我这样做吗?我认为这是唯一合理的时间。。不过,请注意自动分配。确保定义了自动分配的字段,而不是用户,例如从表单提交中获取名称/值对。如果您有一个名为“isAdmin”的属性,并且用户提交isAdmin=true,那么他们可以让您的生活更美好。。具有挑战性的这基本上是一次又一次的全球注册。