domain = mb_strtolower($domain); $normalized = $local . '@' . $this->domain; if (filter_var($normalized, FILTER_VALIDATE_EMAIL) === false) { throw new InvalidArgumentException(self::ERROR_MESSAGE . " $email"); } $this->normalized = $normalized; } public function value(): string { return $this->normalized; } public function equals(self $other): bool { return $this->normalized === $other->normalized; } public function getDomain(): string { return $this->domain; } public function __toString(): string { return $this->normalized; } }