2012-10-04 27 views
1

我的代碼

<?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]在一個變量不行?我該如何解決?

回答

1

node是您想要訪問的屬性的實際屬性名稱。當您使用node[0]而不是node時,它尋找名爲node[0]的屬性,而不是訪問數組$xml->node的第0個索引。基本上,它尋找node[0],就好像你輸入了$xml->{"node[0]"}而不是node(這是你期望的),它找不到它。所以你想嘗試這樣的代替:

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

$ a ='node'; $ b ='0'; $ num =(int)$ b; echo $ xml - > {$ a} [$ num]; //很好地工作謝謝 – user1721470