@@ -20,7 +20,7 @@ class Font implements SplSubject
2020 /** @var SplObserver[] */
2121 private array $ observers ;
2222
23- /** @var bool[ string] */
23+ /** @var array< string, bool> */
2424 private array $ styles ;
2525
2626 public function __construct (string $ name , int $ size , ...$ styles )
@@ -35,7 +35,7 @@ public function __construct(string $name, int $size, ...$styles)
3535 }
3636
3737 /**
38- * @return bool[ string]
38+ * @return array< string, bool>
3939 */
4040 protected function defaultStyles (): array
4141 {
@@ -87,7 +87,7 @@ public function setSize(int $size): self
8787 }
8888
8989 /**
90- * @return bool[ string]
90+ * @return array< string, bool>
9191 */
9292 public function getStyles (): array
9393 {
@@ -186,11 +186,17 @@ public function attach(SplObserver $observer): void
186186 $ this ->observers [] = $ observer ;
187187 }
188188
189- public function detach (SplObserver $ observer )
189+ public function detach (SplObserver $ observer ): void
190190 {
191191 $ index = array_search ($ observer , $ this ->observers , true );
192192 if ($ index !== false ) {
193193 unset($ this ->observers [$ index ]);
194194 }
195195 }
196+
197+ // TODO: php8 Stringable interface
198+ public function __toString (): string
199+ {
200+ return sprintf ('%s %d ' , $ this ->name , $ this ->size );
201+ }
196202}
0 commit comments