Глобальный не работает / Как отсортировать по значению свойства - PullRequest
0 голосов
/ 22 марта 2012

Может ли кто-нибудь объяснить, почему $property находится вне функции 'name', а внутри null? Я проверил с var_dump, и я не могу понять, почему это не работает. Разве глобальное ключевое слово там не должно приносить его внутрь?

$property = $_GET['property']; // 'name'
function cmp($a, $b)
{
    global $property;
    return strnatcmp($a->$property, $b->$property);
}
usort($files, 'cmp');

В качестве альтернативы, у вас есть лучший способ сделать это?

1 Ответ

1 голос
/ 22 марта 2012

Проверьте этот вопрос: Ошибки при использовании array_push - "Первый аргумент должен быть массивом"

Если предоставленный фрагмент кода вызывается из другой функции (или файла, включенного через другую функцию), то $ property не является глобальным и, следовательно, не может быть получен через

global $property;

Вы всегда можете сделать что-нибудь попроще, так как $ _GET уже глобален.

function cmp($a, $b)
{
    $property = $_GET['property'];
    return strnatcmp($a->property , $b->$property);
}
usort($files, 'cmp');
...