PHP XML: незаконное смещение, но оно в массиве? - PullRequest
1 голос
/ 30 сентября 2011
$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 - это документ XML, загруженный с использованием SimpleXMLElement.

Теперь, помогите мне здесь.Когда я повторяю $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 Ответ

4 голосов
/ 30 сентября 2011

$dag будет объектом типа SimpleXMLElement. Объекты не могут быть использованы для ключей массива, поэтому вы получаете предупреждение «Недопустимый тип смещения».

Объект должен быть сначала приведен к подходящему типу, прежде чем использоваться таким образом, в вашем случае это должна быть строка.

$dag = (string) $verwachting->dagvdweek;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...