使用变量访问对象属性

时间:2014-03-10 09:45:24

标签: php arrays object

我有一个充满数组的对象,我可以使用此代码更改数组中的元素

$i = 0;
$object->property[$i] = "some value";

但是以下代码不会更改该值并且不会返回任何错误。

 $i = 0;
 $propertyname = "property";
 $object->$propertyname[$i] = "some value";

3 个答案:

答案 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];