为什么我在尝试构建数组时遇到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']
正确包含一个应该用作密钥的字符串,以便我无法理解问题是什么......
答案 0 :(得分:1)
你必须将它强制转换为字符串:
$results[(string)$tmp['currency']] = (string)$tmp['rate'];
在foreach结束时的;
和函数也是不必要的!
答案 1 :(得分:1)
simplexml_load_file返回SimpleXMLElement,每个xml元素都是一个对象。因此,foreach中$ tmp的类型是“object”(不是字符串),因此需要按如下方式将其强制转换为字符串:
(string)$tmp['currency']
您可以使用gettype函数来检索某些内容的类型:http://php.net/manual/en/function.gettype.php