Это мой обратный звонок для моих usort()
public function sortProperties($a, $b) {
$sortA = inflector::camelize(str_replace('-', '_', $this->sortBy));
$sortB = inflector::camelize(str_replace('-', '_', $this->sortBy));
$a = Arr::get($a, $sortA);
$b = Arr::get($b, $sortB);
if (is_numeric($a) AND is_numeric($b)) {
return $a < $b;
} else {
return strcasecmp($a, $b);
}
}
Обычно, когда я вижу первые 2 строки в любом моего кода, мне кричит: рефакторинг! Я думаю, это потому, что они идентичны.
Я знаю, что мог бы сделать функцию getCamelized()
, но я не думаю, что буду использовать ее снова вне этого.
Есть ли способ превратить эти 4 строки в 2? Могут ли func_get_args()
или array_walk()
помочь мне здесь?
Кроме того, что-то не так с этой функцией сортировки?