getValue() ``` would return * 'zb@example.com', as would calling ```php $header->getValueFor('addr'); ```. * * @author Zaahid Bateson */ class ParameterHeader extends AbstractHeader { /** * @var ParameterPart[] key map of lower-case parameter names and associated * ParameterParts. */ protected array $parameters = []; public function __construct( string $name, string $value, ?LoggerInterface $logger = null, ?ParameterConsumerService $consumerService = null ) { $di = MailMimeParser::getGlobalContainer(); parent::__construct( $logger ?? $di->get(LoggerInterface::class), $consumerService ?? $di->get(ParameterConsumerService::class), $name, $value ); } /** * Overridden to assign ParameterParts to a map of lower-case parameter * names to ParameterParts. */ protected function parseHeaderValue(IConsumerService $consumer, string $value) : void { parent::parseHeaderValue($consumer, $value); foreach ($this->parts as $part) { if ($part instanceof NameValuePart) { $this->parameters[\strtolower($part->getName())] = $part; } } } /** * Returns true if a parameter exists with the passed name. * * @param string $name The parameter to look up. */ public function hasParameter(string $name) : bool { return isset($this->parameters[\strtolower($name)]); } /** * Returns the value of the parameter with the given name, or $defaultValue * if not set. * * @param string $name The parameter to retrieve. * @param string $defaultValue Optional default value (defaulting to null if * not provided). * @return string|null The parameter's value. */ public function getValueFor(string $name, ?string $defaultValue = null) : ?string { if (!$this->hasParameter($name)) { return $defaultValue; } return $this->parameters[\strtolower($name)]->getValue(); } }