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);