3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface Foo { public function doSomething(int $foo = null): void; } class Bar implements Foo { public function doSomething(?int $foo = null): void { } } class ExtendedBar extends Bar { public function doSomething(int $foo = null): void { parent::doSomething($foo); } } interface Foo2 { public function doSomething(?int $foo = null): void; } class Bar2 implements Foo2 { public function doSomething(int $foo = null): void { } }
Output for 8.4.1 - 8.4.14
Deprecated: Foo::doSomething(): Implicitly marking parameter $foo as nullable is deprecated, the explicit nullable type must be used instead in /in/VmY1C on line 5 Deprecated: ExtendedBar::doSomething(): Implicitly marking parameter $foo as nullable is deprecated, the explicit nullable type must be used instead in /in/VmY1C on line 18 Deprecated: Bar2::doSomething(): Implicitly marking parameter $foo as nullable is deprecated, the explicit nullable type must be used instead in /in/VmY1C on line 31
Output for 8.2.0 - 8.2.29, 8.3.0 - 8.3.27

preferences:
66.45 ms | 407 KiB | 5 Q