PHP:使用字符串作为属性名设置类数组属性


PHP: set class array properties with a string as the propertyname

我有一个属性是数组的类:

  class NewObject {
    public $Props = array();
  }
  $obj = new NewObject();
  $obj->Props[0] = 'a';
  $obj->Props[1] = 'b';

现在我想更改 Props 的值,不是直接更改,而是使用变量"属性名称":这确实适用于单个字符串属性,但不适用于数组,因为键 N 被解释为 STRING 'Props' 的第 N 个字母,而不是数组中的第 N 个值!

  $propertyname = 'Props';
  $obj->$propertyname[0] ='c';   //doesnt work as expected, it tries to set $obj->P now, it seems
  $obj->$propertyname[1] ='d';

有什么方法可以解决这个问题吗?

$obj->{$propertyname}[0] ='c';