2016-01-08 2 views
1

У меня есть плоский XML-файл, содержащий User_ID_1_, User_ID_2_ и т. Д. Я пытаюсь сделать цикл while, который показывает каждое из этих полей.Неожиданный T_VARIABLE при анализе XML-элемента с переменной php

$xml = new SimpleXMLElement($xml_file); 
$line=1; 
while ($line<5){ 
echo "<h3>Line ".$line."</h3>".$xml->Display_Name_$line_; 
$line++; 
} 

Но это не работает, и я получаю: PHP Parse error: syntax error, unexpected '$line_' (T_VARIABLE), expecting ',' or ';' Который имеет смысл, потому что $ line_ не то, что я ищу; $ line - это то, что мне нужно.

Да, требуется дополнительное подчеркивание (обвините Cisco в каких-либо плохих методах XML). Как я могу использовать переменную PHP как часть поиска узлов XML?

ответ

1

Просто добавьте фигурную скобку и котировки собственности:

echo "<h3>Line ". $line. "</h3>" . $xml->{"Display_Name_$line_"}; 

Эту тему можно найти в manual.

+0

Спасибо. Мне пришлось конкатенировать переменную '$ line', но это зафиксировало ее – macaddict89

+0

@ macaddict89. Да, этот способ тоже будет работать, в ответе выше' 'строка также будет интерполироваться внутри двойных кавычек, давая' Display_Name_1_' и так далее. рад это помогло – Ghost

Смежные вопросы