Короче говоря, мне нужно отсортировать массив объектов с помощью usort, и мне нужно указать usort, по каким полям в объектах сортировать.
Очевидным решением является создание десятков отдельных функций сортировки usort, но это кажется немного излишним и некрасивым. В большинстве случаев объекты будут сортироваться по входным данным из $_GET, но не всегда, поэтому я не хочу напрямую сортировать по переменным $_GET.
Возможно ли, чтобы функция usort использовала функцию сортировки текущего класса? Что-то вроде этого
<?php
class myClass
{
public $myArray;
private $by;
public function filter($by)
{
$this->by = $by;
usort($this->myArray, /* Somehow point to the following function: */ );
}
private function srt($a, $b)
{
$c = $this->by; // <- reaching a third variable
// ...
}
}
?>