我可以使用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"
}
答案 0 :(得分:2)
您只能在对象上下文中使用$this
。你做的是
当从对象上下文中调用方法时,伪变量$ this可用。 $ this是对调用对象的引用(通常是方法所属的对象,但可能是另一个对象,如果从辅助对象的上下文中静态调用该方法)。“ http://php.net/manual/en/language.oop5.basic.php