2016-07-26 3 views
-1

Что-то не так, и я подозреваю, что это моя версия PHP, которая на этом сервере равна 5.2; код работал на 5.6 раньше без каких-либо недостатков ...Альтернатива для array_map PHP 5.2

Я отлаживал его до следующего наружного кода. Тем не менее, я не получил сообщение об ошибке.

$standard = array_map(function($item) { 
     return $item['standard_resolution']->url; 
    }, $images); 

Может ли кто-нибудь помочь мне переделать эту часть кода, чтобы она работала в 5.2?

+0

Можете ли вы объяснить, что не работает должным образом? – FirstOne

+0

Я только 500 внутренняя ошибка при раскомментировании этого кода ... @FirstOne – Codehiker

+0

Пожалуйста, проверьте, как [получить ошибки php для отображения] (http://stackoverflow.com/questions/1053424/how-do-i-get- PHP-ошибка-на-дисплей). Вы также можете проверить журналы ... – FirstOne

ответ

6

Нет ничего плохого в том, что array_map() на PHP 5.2.

Проблема заключается в коде: он использует anonymous functions, но они были введены в PHP 5.3 (см Изменений раздела в нижней части страницы документации).

Для того, чтобы запустить этот код на PHP 5.2 (или выше), вы должны использовать функцию create_function() создать анонимный PHP функции:

$standard = array_map(
    create_function('$item', 'return $item["standard_resolution"]->url;'), 
    $images 
); 

Однако, если это возможно, это гораздо лучше, чтобы обновить PHP-интерпретатор версии 7.0 или 5.6. PHP 5.2 is dead and buried более 5 лет назад.

+2

Это хороший ответ. Но я действительно надеюсь, что OP обновится, а не попытается использовать решение для кода, которое вы ему дали. Вероятно, у него будет намного больше изменений кода, чем только это, чтобы сделать, прежде чем его приложение действительно сработает, и на самом деле нет оправдания для того, чтобы все еще работать с PHP 5.2 сегодня, особенно для нового кода. (вы можете просто извиниться, если у вас есть старое приложение, которое невозможно обновить, но даже тогда проблемы с безопасностью и проблемы совместимости с запуском такого старого программного обеспечения должны быть достаточными для того, чтобы подтолкнуть вас к обновлению) – Simba

Смежные вопросы