PHP XML:非法偏移,但是在数组中? [英] PHP XML: Illegal Offset, but it is in array?

查看:143
本文介绍了PHP XML:非法偏移,但是在数组中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

$dagen = array(
    'Mon' => 'Maandag',
    'Tue' => 'Dinsdag',
    'Wed' => 'Woensdag',
    'Thu' => 'Donderdag',
    'Fri' => 'Vrijdag',
    'Sat' => 'Zaterdag',
    'Sun' => 'Zondag'
);

foreach ($xml->verwachtingen->verwachting as $verwachting) {
    $graden = $verwachting->maxtempGRC - $verwachting->mintempGRC;
    $graden = $graden / 2;
    $graden = $graden + $verwachting->mintempGRC;
    $dag = $verwachting->dagvdweek;

    echo 'Op '. $dagen[$dag] .' wordt het '. $graden .' graden';
}

$ xml是使用SimpleXMLElement加载的XML文档。

$xml is the XML document loaded using SimpleXMLElement.

现在,帮我在这里当我回覆 $ dag 时显示'Fri',因为它是星期五。所以我尝试把这几天的英文单词转换成我的语言(荷兰语)。但是看起来不行,因为我得到这个:

Now, help me out here. When i echo $dag it displays 'Fri' because it is Friday. So i try to convert the english words of the days to my language (dutch). But it doesn't seem to work, because i get this:


Warning: Illegal offset type in C:\data\home\www\awnl-xml\index.php on line 21
Op wordt het 18.5 graden
Warning: Illegal offset type in C:\data\home\www\awnl-xml\index.php on line 21
Op wordt het 18 graden
Warning: Illegal offset type in C:\data\home\www\awnl-xml\index.php on line 21
...

有人知道为什么我收到此错误?谢谢。

Does someone know why i get this error? Thanks.

推荐答案

$ dag 将是一个对象, code>的SimpleXMLElement 。对象不允许用于数组键,这就是为什么你得到非法偏移类型警告。

$dag will be an object, of type SimpleXMLElement. Objects are not allowed to be used for array keys, which is why you are getting that "Illegal offset type" warning.

该对象必须首先被转换为合适的类型在被使用之前,在你的情况下,它应该是一个字符串。

The object must first be cast to a suitable type before being used like that, in your case it should be a string.

$dag = (string) $verwachting->dagvdweek;

这篇关于PHP XML:非法偏移,但是在数组中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆