PHP XML:Illegal Offset,但它在数组中?

时间:2011-09-30 17:43:45

标签: php mysql escaping

$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文档。

现在,请帮帮我。当我回显$dag时,它显示'周五',因为它是星期五。所以我试着将日期的英语单词转换成我的语言(荷兰语)。但它似乎没有用,因为我得到了这个:

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
...

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

1 个答案:

答案 0 :(得分:4)

$dag将是SimpleXMLElement类型的对象。不允许将对象用于数组键,这就是您收到“非法偏移类型”警告的原因。

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

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