我有一个充满数组的对象,我可以使用此代码更改数组中的元素
$i = 0;
$object->property[$i] = "some value";
但是以下代码不会更改该值并且不会返回任何错误。
$i = 0;
$propertyname = "property";
$object->$propertyname[$i] = "some value";
答案 0 :(得分:3)
尝试:
$i = 0;
$propertyname = "property";
$object->{$propertyname}[$i] = "some value";
答案 1 :(得分:0)
要设置属性,您应该使用函数。 这可以防止将属性设置为无效值。 您想要实现的目标可以通过变通方法来实现:
public function setPoperty($propName,$Value)
{
switch($propName)
{
case ('firstName'):
$this->firstName=$Value;
break;
case ('UserMode'):
if ($Value>0) //prevent from setting to an undesired value
{ $this->UserMode=$Value}
break;
}
}
这只是从头开始编写的。但你应该明白这一点。
答案 2 :(得分:-1)
好像你试图通过程序风格编辑封装在对象中的数据
E:试试
$对象 - > $ PROPERTYNAME [$ otherprop [ '名称'] $ I];