public static function join(array $array, $separator = self::DEFAULT_SEPARATOR, callable $callback = null)
    {
        self::swapCallable($separator, $callback, self::DEFAULT_SEPARATOR);
        if (null !== $callback) {
            $array = array_map($callback, $array);
        }
        
        return join($separator, $array);
    }