2012-03-22 3 views
0

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

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

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

ответ

1

Заканчивать этот вопрос: Errors when using array_push -- "First argument should be an array"

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

global $property; 

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

function cmp($a, $b) 
{ 
    $property = $_GET['property']; 
    return strnatcmp($a->property , $b->$property); 
} 
usort($files, 'cmp'); 
Смежные вопросы