2016-07-06 3 views
2

У меня проблема с usort, не нравится второй параметр (функция сортировки). Я видел много вопросов о том, что это проблема, когда в классе, и ответ для этого - передать массив array($this, functionName) Но в моем случае это не работает. Сценарий не является классом, но я получаю эту ошибку:PHP usort() ожидает, что параметр 2 будет действительным обратным вызовом, а не в классе

PHP Warning: usort() expects parameter 2 to be a valid callback, function 'cmp' not found or invalid function name in <filename.php> 

Так, что проблема со вторым параметром, имя функции, не нашли? Это пример кода прямо с сайта PHP.

ответ

4

Если код отсутствует в классе, но вы используете пространство имен, usort ожидает, что второй параметр будет иметь это пространство имен. Но не в массиве в подобном стиле использования usort в классе.

Это работает для меня, где «ЧМК» является функция сортировки:

usort($arrayToSort, 'My\Full\Namespace\cmp'); 
+2

Это Q & формат проводки. Если у вас есть проблема и вы можете найти решение, вы можете опубликовать его в формате Q & A. – Deltaxfx

+0

@ AndréFerraz [this] (http://stackoverflow.com/help/self-answer) –