Сообщение об ошибке php usort

У меня есть класс Link с функцией Compare. Когда я запускаю этот код, я продолжаю получать сообщение об ошибке

foreach($filearray as $k=>$v)  
{  
$website = new Link($v);  
$links[] = $website;  
}  
usort($links, array("Link","compare"));  

Но я получаю сообщение об ошибке, и я не могу понять, почему...

«Предупреждение: usort() [function.usort]: аргумент должен быть массивом»


person sam mendez    schedule 24.01.2012    source источник
comment
Это странная проблема. Действительно ли var_dump($links); возвращает массив?   -  person Oldskool    schedule 24.01.2012
comment
Вы уверены, что цикл foreach действительно выполняется?   -  person Cyclonecode    schedule 24.01.2012


Ответы (2)


Если $links не был инициализирован как массив, когда $filearray пусто, $links остается null.

Добавьте $links = array(); перед циклом.

person xdazz    schedule 24.01.2012

Второй параметр — это функция сравнения, которая должна возвращать целое число, меньшее, равное или большее нуля, если считается, что первый аргумент соответственно меньше, равен или больше второго.

Ознакомьтесь со статьей ниже http://php.net/manual/en/function.usort.php

person Rinto George    schedule 24.01.2012