Php 使用变量访问对象属性

Php 使用变量访问对象属性,php,arrays,object,Php,Arrays,Object,我有一个充满数组的对象,我可以用这段代码更改数组中的元素 $i = 0; $object->property[$i] = "some value"; 但是,以下代码不会更改该值,并且不会返回任何错误 $i = 0; $propertyname = "property"; $object->$propertyname[$i] = "some value"; 似乎您正在尝试按程序样式编辑封装在对象中的数据 E:试试看 $object->$propertyname[$otherp

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

$i = 0;
$object->property[$i] = "some value";
但是,以下代码不会更改该值,并且不会返回任何错误

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

似乎您正在尝试按程序样式编辑封装在对象中的数据

E:试试看

$object->$propertyname[$otherprop['name']$i]

试试看:

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

要设置属性,应使用函数。 这样可以防止将属性设置为无效值。 您想要实现的目标可以通过解决方案来实现:

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;
   }
}

这是白手起家写的。但是你应该明白这一点。

试试这个
$object->{“$propertyname[$i]”}='some value'
.没有任何区别:/@Alex告诉php属性名是
$propertyname
,而不是
$propertyname[$i]