如何编写通用的usort过滤器函数

时间:2014-11-04 14:30:21

标签: php

我希望创建一个usort函数。该函数使用对象字段的值进行相互比较。但是,我希望通过变量设置对象字段,但我无法做到。以下是代码的精简部分:

<?php
    function projSort($a, $b){
        return $a->{$sort} > $b->{$sort};
    }
    usort($projects, 'projSort');
?>

$sort通过$_POST设置并包含一个字符串。当我使用上面的代码时,我得到一个Fatal error: Cannot access empty property。我错过了什么?

1 个答案:

答案 0 :(得分:0)

你可以使用global或者我错过了什么?

function projSort($a, $b){
    global $sort;
    return $a->{$sort} > $b->{$sort};
}

如果您想避免使用全局变量,可以直接使用$_POST

function projSort($a, $b){
    $sort = sanitized($_POST['sort']);
    return $a->{$sort} > $b->{$sort};
}