有人可以解释为什么$property
在函数之外是'name'
而在null
里面是什么?我已经检查了var_dump
,我无法弄清楚为什么这不起作用。是不是应该把它带进全局关键字?
$property = $_GET['property']; // 'name'
function cmp($a, $b)
{
global $property;
return strnatcmp($a->$property, $b->$property);
}
usort($files, 'cmp');
或者,您有更好的方法吗?
答案 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');