Php 如何使用字符串变量访问对象的子对象?
我有一个函数,我想处理一个对象。我想用字符串指定该对象的子对象。我知道孩子可以使用Php 如何使用字符串变量访问对象的子对象?,php,Php,我有一个函数,我想处理一个对象。我想用字符串指定该对象的子对象。我知道孩子可以使用$x,但是也可以使用$y这样的东西进行更深入的学习吗 <?php $obj = new stdClass; $obj->token = new stdClass; $obj->token->id = 123; $x = 'created'; $obj->token->{$x} = 456; $y = 'token-&g
$x
,但是也可以使用$y
这样的东西进行更深入的学习吗
<?php
$obj = new stdClass;
$obj->token = new stdClass;
$obj->token->id = 123;
$x = 'created';
$obj->token->{$x} = 456;
$y = 'token->updated';
$obj->{$y} = 789;
print_r($obj);
?>
谢谢大家! 如果包含箭头,它将不起作用。 另一方面,这是可行的:
$obj->{$x}->{$y} = 111;
如果箭头必须包含在变量中,则可以执行以下操作:
$deepVar = 'token->update';
$a = &$obj;
foreach (explode('->', $deepVar) as $varName) {
$a = &$a->{$varName};
}
$a = 111;
unset($a);
为什么不使用
$obj->token->updated=789代码>当然可以,但要求数据的目的地作为文本来自配置文件。
$deepVar = 'token->update';
$a = &$obj;
foreach (explode('->', $deepVar) as $varName) {
$a = &$a->{$varName};
}
$a = 111;
unset($a);