Php SimpleXML$xml->;{$a}不';行不通

Php SimpleXML$xml->;{$a}不';行不通,php,Php,我的代码 <?php $a = 'node' $xml = simplexml_load_file('config.xml'); echo $xml->node //work fine echo $xml->{$a}; //also work fine ?> <?php $a = 'node[0]' $xml = simplexml_load_file

我的代码

<?php
        $a = 'node'
        $xml = simplexml_load_file('config.xml');
        echo $xml->node //work fine
        echo $xml->{$a};  //also work fine
        ?>

<?php
        $a = 'node[0]'
        $xml = simplexml_load_file('config.xml');
        echo $xml->node[0] //work fine
        echo $xml->{$a};  //DOESNT WORK!
        ?>


为什么变量中的节点[0]不工作?如何求解?

节点
是要访问的属性的实际属性名称。当您使用
node[0]
而不是
node
时,它会查找名为
node[0]
的属性,而不是访问数组的第0个索引
$xml->node
。基本上,它查找
节点[0]
就像您键入
$xml->{“节点[0]”}
而不是
节点
(这是您希望执行的操作),但它找不到它。所以你应该试试这样的方法:

echo $xml->{$a}[0];

节点
是要访问的属性的实际属性名称。当您使用
node[0]
而不是
node
时,它会查找名为
node[0]
的属性,而不是访问数组的第0个索引
$xml->node
。基本上,它查找
节点[0]
就像您键入
$xml->{“节点[0]”}
而不是
节点
(这是您希望执行的操作),但它找不到它。所以你应该试试这样的方法:

echo $xml->{$a}[0];

$a=‘节点’$b='0'$num=(int)$b;echo$xml->{$a}[$num]//工作正常,谢谢$a=‘节点’$b='0'$num=(int)$b;echo$xml->{$a}[$num]//很好,谢谢