2015-04-21 36 views
1

我可以使用对象/数组的值来直接定义另一个对象/数组的值吗?如何在同一个对象内设置另一个相同值的对象的值

说明

我知道这不是要做到这一点适当的方式,但我试图不同的方式和令人沮丧......

代码中,我已经试过:

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

而且它会引发一个致命错误:

Fatal error: Using $this when not in object context on line 4

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

我已经知道我可以做这样的事情:

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

var_dump($object); 

var_dump($object); 

其结果将是(这是结果id'like获得无外部。定义):

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

你认为'$ this'指的是'$ object'? – Ghost

+0

我不认为对象内部的“递归”对象分配会起作用 – pbaldauf

+0

@Ghost是的我想引用对象所以我可以达到我的目标!:D –

回答

2

您可以使用仅在对象上下文中使用$this。你要做的就是

  1. 创建一个数组
  2. 将其转换为一个对象

伪变量$ this可以在当一个方法在对象内部调用。 $这是给调用对象的引用(通常是该方法所属的对象,但可能的另一种对象,如果该方法是从第二个对象的上下文静态调用)。” http://php.net/manual/en/language.oop5.basic.php

+0

你可以给我一个PHP代码段吗? –

相关问题