public function compare($a, $b)
{
if ($a->isStatic() !== ($isStatic = $b->isStatic())) {
return $isStatic ? 1 : -1;
}
if (($aV = $a->getVisibility()) !== ($bV = $b->getVisibility())) {
$aV = 'public' === $aV ? 3 : ('protected' === $aV ? 2 : 1);
$bV = 'public' === $bV ? 3 : ('protected' === $bV ? 2 : 1);
return $aV > $bV ? -1 : 1;
}
return strcasecmp($a->getName(), $b->getName());
}