2016-07-26 14 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-errors-to-display). 로그를 검사 할 수도 있습니다 ... – FirstOne

답변

6

PHP 5.2의 array_map()에는 아무런 문제가 없습니다.

코드에 문제가 있습니다 : anonymous functions을 사용하지만 PHP 5.3에 추가되었습니다 (설명서 페이지 하단의 변경 사항 섹션 참조). 익명 PHP 함수를 만들 수 create_function() 기능을 사용해야합니다 (이전 또는) PHP 5.2에서이 코드를 실행하기 위해

: 가능하면

$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