private static function compareParameters(\ReflectionParameter $a, \ReflectionParameter $b) : int
    {
        if (0 !== $result = self::compareParameterClasses($a, $b)) {
            return $result;
        }

        if ($a->isArray() ^ $b->isArray()) {
            return $b->isArray() << 1 - 1;
        }

        if ($a->isCallable() ^ $b->isCallable()) {
            return $b->isCallable() << 1 - 1;
        }

        return $a->getPosition() - $b->getPosition();
    }
private static function compareParameters(\ReflectionParameter $a, \ReflectionParameter $b) : int
    {
        if (0 !== $result = self::compareParameterClasses($a, $b)) {
            return $result;
        }

        if ($a->isArray() ^ $b->isArray()) {
            return $b->isArray() << 1 - 1;
        }

        if ($a->isCallable() ^ $b->isCallable()) {
            return $b->isCallable() << 1 - 1;
        }

        return $a->getPosition() - $b->getPosition();
    }
private static function compareParameters ( \ ReflectionParameter $ a , \ ReflectionParameter $ b ) : int { if ( 0 !== $ result = self :: compareParameterClasses ( $ a , $ b ) ) { return $ result ; } if ( $ a -> isArray ( ) ^ $ b -> isArray ( ) ) { return $ b -> isArray ( ) << 1 - 1 ; } if ( $ a -> isCallable ( ) ^ $ b -> isCallable ( ) ) { return $ b -> isCallable ( ) << 1 - 1 ; } return $ a -> getPosition ( ) - $ b -> getPosition ( ) ; }
Compares reflection parameters by type and position.

@param \ReflectionParameter $a
@param \ReflectionParameter $b

@return int
Compares reflection parameters by type and position .