我最近开始在000webhost上托管一个网站,该网站不支持PHP 5.3并且在此文件的第一个usort函数中不断出现意外的T_FUNCTION错误。
<?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()来帮助转换它但是在我的生活中无法弄清楚如何去做。你们能帮忙吗?
答案 0 :(得分: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']);
}