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 { } final class Fake extends Result { function Fake() {echo 'wtf';} } var_dump(Result::success()); var_dump(Result::failure()); var_dump(new Fake());

preferences:
44.65 ms | 2181 KiB | 5 Q