Magic方法从数组中动态获取和设置值

时间:2016-04-20 00:37:33

标签: php

我很抱歉,如果之前已经提出过这样的问题,但根据我的问题,我找不到任何问题。

我有一个使用像get和set这样的魔术方法的类。 我想要的是使用数组的属性作为set" name",以便稍后使用get" name"来访问该属性。

我现在做的事情:

$arr = array('name' => 'value')
$this->obj->name = $arr['name'];

我想要的并且在我尝试时不起作用:

$arr = array('name' => 'value');

foreach($arr as $item)
   $this->obj->[$item] = $item['name'];

echo $this->obj->name; // result should be 'value'

2 个答案:

答案 0 :(得分:2)

正确的方法是:

$arr = array('name' => 'value');

foreach($arr as $attributeName =>$value) {
  $this->obj->{$attributeName} = $value;
}

echo $this->obj->name;

答案 1 :(得分:1)

PHP实际上非常适合使用魔术方法,这看起来像是一种语法。你应该能够用

做你以后的事情
foreach ($arr as $key => $item) 
    $this->obj->$key = $item;

echo $this->obj->name; // Results in 'value'