params = $gets; if($anchor != ''){ $this->setAnchor($anchor); } } //setters normaux public function addParams(array $gets): void { // array_merge est préféré à l'opérateur d'union +, si une clé existe déjà la valeur est écrasée $this->params = array_merge($this->params, $gets); } public function setAnchor(string $anchor = ''): void { if($anchor != ''){ $this->anchor = '#' . ltrim($anchor, '#'); } else{ $this->anchor = ''; } } private function makeParams(): string { $output = ''; $first = true; foreach($this->params as $key => $value) { if($first){ $output .= '?'; $first = false; } else{ $output .= '&'; } $output .= $key . '=' . $value; } return $output; } public function __toString(): string { return self::$protocol . self::$host . self::$port . self::$path . $this->makeParams() . $this->anchor; } }