我在这个答案中看到了代码
$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"
复杂(卷曲)语法