You are here

public function Uri::withQuery in Zircon Profile 8

Same name in this branch
  1. 8 vendor/zendframework/zend-diactoros/src/Uri.php \Zend\Diactoros\Uri::withQuery()
  2. 8 vendor/guzzlehttp/psr7/src/Uri.php \GuzzleHttp\Psr7\Uri::withQuery()
Same name and namespace in other branches
  1. 8.0 vendor/guzzlehttp/psr7/src/Uri.php \GuzzleHttp\Psr7\Uri::withQuery()

Return an instance with the specified query string.

This method MUST retain the state of the current instance, and return an instance that contains the specified query string.

Users can provide both encoded and decoded query characters. Implementations ensure the correct encoding as outlined in getQuery().

An empty query string value is equivalent to removing the query string.

Parameters

string $query The query string to use with the new instance.:

Return value

self A new instance with the specified query string.

Throws

\InvalidArgumentException for invalid query strings.

Overrides UriInterface::withQuery

File

vendor/guzzlehttp/psr7/src/Uri.php, line 395

Class

Uri
Basic PSR-7 URI implementation.

Namespace

GuzzleHttp\Psr7

Code

public function withQuery($query) {
  if (!is_string($query) && !method_exists($query, '__toString')) {
    throw new \InvalidArgumentException('Query string must be a string');
  }
  $query = (string) $query;
  if (substr($query, 0, 1) === '?') {
    $query = substr($query, 1);
  }
  $query = $this
    ->filterQueryAndFragment($query);
  if ($this->query === $query) {
    return $this;
  }
  $new = clone $this;
  $new->query = $query;
  return $new;
}