如何在同一对象内设置具有另一个相同值的对象的值

时间:2015-04-21 12:31:59

标签: php arrays object

我可以使用object / array的值直接在其中定义另一个对象/数组值吗?

说明

我知道这不是正确的方法,但我尝试了不同的方式并且令人沮丧......

我做过的代码:

$object= (object)array(
    'akey'=>'value',
    'anotherkey'=>'anothervalue',
    'the_key_of_interested_special_value'=>$this->data_evento
);
var_dump($object);

它给我一个致命的错误:

  

致命错误:在第4行的对象上下文中使用$ this

我不想在阵列/对象定义之外使用外部变量/数组/对象和/或函数。

我已经知道我可以这样做:

$object= (object)array(
    'akey'=>'value',
    'anotherkey'=>'anothervalue'
);
$object->the_key_of_interested_special_value = $object->akey.'_correct';

var_dump($object);

var_dump($object);

结果将是(结果ID'喜欢在没有外部定义的情况下获得):

object(stdClass)#1 (3) {
  ["akey"]=>
  string(5) "value"
  ["anotherkey"]=>
  string(12) "anothervalue"
  ["the_key_of_interested_special_value"]=>
  string(17) "value_correct"
}

1 个答案:

答案 0 :(得分:2)

您只能在对象上下文中使用$this。你做的是

  1. 创建数组
  2. 将其转换为对象
  3. 当从对象上下文中调用方法时,伪变量$ this可用。 $ this是对调用对象的引用(通常是方法所属的对象,但可能是另一个对象,如果从辅助对象的上下文中静态调用该方法)。“ http://php.net/manual/en/language.oop5.basic.php