3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface DoThing { public function doThing(): void; } class SimplyDoThing implements DoThing { public function doThing(): void { echo 'Thing done.' . PHP_EOL; } } class DoThingAndLog implements DoThing { public function __construct(private object $logger) {} public function doThing(): void { echo 'Thing done.' . PHP_EOL; echo 'Log logged.' . PHP_EOL; } } class DoThingAndMail implements DoThing { public function __construct(private object $mailer) {} public function doThing(): void { echo 'Thing done.' . PHP_EOL; echo 'Mail sended.' . PHP_EOL; } } (new SimplyDoThing)->doThing(); (new DoThingAndLog(new stdClass))->doThing(); (new DoThingAndMail(new stdClass))->doThing();
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
Thing done. Thing done. Log logged. Thing done. Mail sended.

preferences:
65.58 ms | 406 KiB | 5 Q