3v4l.org

run code in 300+ PHP versions simultaneously
<?php abstract class Result { private final function __construct() { } public static function success() { return new Success(); } public static function failure() { return new Failure(); } } final class Success extends Result { public static function fakeIt() { return new self(); } } final class Failure extends Result { } var_dump(Result::success()); var_dump(Failure::success()); Success::fakeIt();

preferences:
61.02 ms | 402 KiB | 5 Q