$object->{0}到底是做什么的


What exactly does $object->{0} do?

我在这个答案中看到了代码

$tmpNode = parent::addChild($name,null,$namespace);
$tmpNode->{0} = $value;

我很好奇->{0}到底是做什么的?这是哪种PHP语言结构?它是否引用$tmpNode的第一个属性而不使用其名称?

更新:

到目前为止,我已经看到了给出的答案,但我正在寻找 PHP 语言手册的参考资料,该手册解释了大括号的这种用法。当我在 PHP 手册中搜索curly时,唯一的点击是关于字符串的页面,其中 curly 仅在变量和复杂表达式的上下文中解释。我不清楚该语言是否允许卷曲的文字。

php 中{}的大括号也用于解析复杂代码。举个例子:

$t = 0;
$$t = 5;
echo ${0}; //outputs 5

或者这个:

${0} = 65;
echo ${0}; //outputs 65

但是如果你要尝试这个:

$0 = 65;
echo $0;

你会得到:

解析错误:语法错误、意外的"0"(T_LNUMBER)、期望变量 (T_VARIABLE) 或"$"

对象属性也是如此:

$obj = new stdClass();
$obj->{1} = "Hello world";
echo $obj->{1}; //outputs "Hello world"

复杂(卷曲)语法