PHP:从 xml 生成数组时出现非法偏移类型
PHP: Illegal offset type while generating an array from xml
为什么我在尝试构建数组时遇到 Illegal offset type
错误?
function tassi_parser() {
$xml=simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml');
foreach($xml->Cube->Cube->Cube as $tmp) {
$results[$tmp['currency']] = $tmp['rate'];
};
return $results;
};
$tmp['currency']
正确包含应用作键的字符串,所以我无法理解问题所在...
您必须像这样将其转换为字符串:
$results[(string)$tmp['currency']] = (string)$tmp['rate'];
此外,foreach 和函数末尾的 ;
不是必需的!
simplexml_load_file return SimpleXMLElement 和每个 xml 元素都是一个对象。因此,你的$tmp在foreach中的类型是"object"(不是string),所以你需要将它转换成string,如下:
(string)$tmp['currency']
您可以使用 gettype 函数检索某物的类型:http://php.net/manual/en/function.gettype.php
为什么我在尝试构建数组时遇到 Illegal offset type
错误?
function tassi_parser() {
$xml=simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml');
foreach($xml->Cube->Cube->Cube as $tmp) {
$results[$tmp['currency']] = $tmp['rate'];
};
return $results;
};
$tmp['currency']
正确包含应用作键的字符串,所以我无法理解问题所在...
您必须像这样将其转换为字符串:
$results[(string)$tmp['currency']] = (string)$tmp['rate'];
此外,foreach 和函数末尾的 ;
不是必需的!
simplexml_load_file return SimpleXMLElement 和每个 xml 元素都是一个对象。因此,你的$tmp在foreach中的类型是"object"(不是string),所以你需要将它转换成string,如下:
(string)$tmp['currency']
您可以使用 gettype 函数检索某物的类型:http://php.net/manual/en/function.gettype.php