3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types=1); final class Custom extends \RuntimeException { public static int $counter = 0; private function __construct(string $reason) { parent::__construct($reason); ++self::$counter; } public static function reason(string $reason): self { return new self($reason); } } printf("%d\n", Custom::$counter); assert(true === true, Custom::reason("Should never fail")); printf("%d (if increased, pointless throwable instantiation)\n", Custom::$counter); try { assert(true === false, Custom::reason("Should always fail")); } catch (\Throwable $t) { printf("%d (if increased, expected throwable instantiation) <%s>\n", Custom::$counter, $t->getMessage()); } printf("%d\n", Custom::$counter);
Output for git.master, git.master_jit, rfc.property-hooks
0 1 (if increased, pointless throwable instantiation) 2 (if increased, expected throwable instantiation) <Should always fail> 2

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
35.7 ms | 401 KiB | 8 Q