private static function _sort_func($a, $b = NULL) { static $keys; if ($b === NULL) { return $keys = $a; } foreach ($keys as $k) { if ($k[0] == '!') { $k = substr($k, 1); if (GantryOverrides::_hod($a, '$a->' . $k) !== GantryOverrides::_hod($b, '$b->' . $k)) { return (int) GantryOverrides::_hod($b, '$b->' . $k) - (int) GantryOverrides::_hod($a, '$a->' . $k); //return strcmp(GantryOverrides::_hod($b, '$b->' . $k), GantryOverrides::_hod($a, '$a->' . $k)); } } else { if (GantryOverrides::_hod($a, '$a->' . $k) !== GantryOverrides::_hod($b, '$b->' . $k)) { return (int) GantryOverrides::_hod($a, '$a->' . $k) - (int) GantryOverrides::_hod($b, '$b->' . $k); //return strcmp(GantryOverrides::_hod($a, '$a->' . $k), GantryOverrides::_hod($b, '$b->' . $k)); } } } return 0; }