全局无法工作/如何按属性值排序

时间:2012-03-22 18:14:58

标签: php function sorting callback global

有人可以解释为什么$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 个答案:

答案 0 :(得分:1)

查看此问题:Errors when using array_push -- "First argument should be an array"

如果在另一个函数(或通过另一个函数包含的文件)中调用所提供的代码,则$ property不是全局的,因此无法通过

检索
global $property;

你总是可以做一些更简单的事情,因为$ _GET已经是全球性的。

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