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]//很好,谢谢