我在this answer代码
中看到了$tmpNode = parent::addChild($name,null,$namespace);
$tmpNode->{0} = $value;
我很好奇->{0}
实际上做了些什么?这是哪种PHP语言结构?它是否引用$tmpNode
的第一个属性而不使用其名称?
到目前为止,我已经看到了答案,但我正在寻找PHP语言手册的参考资料,该手册解释了花括号的这种用法。当我在PHP Manual中搜索curly
时,唯一的点击是page about strings,其中仅在变量和复杂表达式的上下文中解释了卷曲。我不清楚这种语言允许卷曲文字。
答案 0 :(得分:1)
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"