我正在创建一个通用的php类,它将值自动加载到数据库中的对象
要设置属性我使用:
$object->$propertyName = $valueFromDB;
其中propertyName的值来自mysql字段名..
现在我想以类似的方式将某些内容推送到数组:
这有效..
$object->$arryName = array();
但这不是..
$object->$arryName[] = "test";
我该如何解决这个问题?
答案 0 :(得分:2)
$object->{$arryName}[] = "test"
大括号改变了操作的顺序,并使PHP在硬括号之前评估变量名。
如果你想做一个关联数组,这会有点复杂:
$object->{$arryName}[$keyname] = "test"
在这种情况下,你可以在$ keyname周围加上大括号,但它完全是可选的。
在相关的说明中..变量变量通常是 - 但不总是 - 一个棘手的东西的标志。对于那些不得不调试,重构,进行任何打算等等的人来说,它们也是一种痛苦。如果你必须使用它们,那很好,但要确保你已经考虑过这些后果。< / p>