2013-05-18 4 views
1

저는 PHP 5.3을 지원하지 않는 000webhost에서 웹 사이트를 호스팅하기 시작했으며이 파일의 첫 번째 usort 함수에서 예기치 않은 T_FUNCTION 오류가 계속 발생했습니다.익명 usort 함수를 변환하는 데 도움이 필요합니다

<?php 
    $cityXML = simplexml_load_file("http://build.uitdatabank.be/lib/1.2/city.xml"); 
    $regionXML = simplexml_load_file("http://build.uitdatabank.be/lib/1.2/region.xml"); 
    $headingXML = simplexml_load_file("http://build.uitdatabank.be/lib/1.2/heading.xml"); 
    $cities = array(); 
    foreach($cityXML->city as $city) 
    { 
     $cities[]=$city; 
    } 
    usort($cities, function($a, $b) 
    { 
     return strcmp($a['city'], $b['city']); 
    }); 
    $regions = array(); 
    foreach($regionXML->region as $region) 
    { 
     $regions[]=$region; 
    } 
    usort($regions, function($a, $b) 
    { 
     return strcmp($a['title'], $b['title']); 
    }); 
    $headings = array(); 
    foreach($headingXML->heading as $heading) 
    { 
     $headings[]=$heading; 
    } 
    usort($headings, function($a, $b) 
    { 
     return strcmp($a['title'], $b['title']); 
    }); 
?> 

익명의 함수이며 따라서 이전 버전의 PHP에서 실행되지 않는다고 생각합니다.

나는 그것을 변환하는 데 도움이되는 create_function()을 사용해 보았지만 나에게 그럴 줄 알았다. 너희들도 도와 줄 수 있니?

답변

3

그냥 함수를 만드는 대신 원래 함수의 기능의 이름을 사용

usort($headings, function($a, $b) 
{ 
    return strcmp($a['title'], $b['title']); 
}); 

예를 들어, 될 것입니다 : 속임수를 썼는지

usort($headings, "sort_by_title"); 

function sort_by_title($a, $b) 
{ 
    return strcmp($a['title'], $b['title']); 
} 
+0

넵합니다. 덕분에 생명의 은인 – Birdhowse

+0

'create_function'은 PHP5.2에서 작동하지만 메모리가 비효율적이어서이 대답처럼 작성해야합니다. – mpyw

+0

덕분에 그 점을 염두에 두겠습니다. – Birdhowse

관련 문제