/** * @param \SlevomatCodingStandard\Helpers\UseStatement $a * @param \SlevomatCodingStandard\Helpers\UseStatement $b * @return integer */ private function compareUseStatements(UseStatement $a, UseStatement $b) { if (!$a->hasSameType($b)) { return $a->compareByType($b); } $aName = $a->getFullyQualifiedTypeName(); $bName = $b->getFullyQualifiedTypeName(); $i = 0; for (; $i < min(strlen($aName), strlen($bName)); $i++) { if ($this->isSpecialCharacter($aName[$i]) && !$this->isSpecialCharacter($bName[$i])) { return -1; } elseif (!$this->isSpecialCharacter($aName[$i]) && $this->isSpecialCharacter($bName[$i])) { return 1; } if (is_numeric($aName[$i]) && is_numeric($bName[$i])) { break; } $cmp = strcasecmp($aName[$i], $bName[$i]); if ($cmp !== 0 || $aName[$i] !== $bName[$i] && strtolower($aName[$i]) === strtolower($bName[$i])) { return $cmp; } } return strnatcasecmp(substr($aName, $i), substr($bName, $i)); }