3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Assert { /** * @param int $value * * @return self */ public static function unsignedInt(int $value) : string { if (0 > $value) { throw new InvalidArgumentException('Значение должно быть не отрицательным.'); } return __CLASS__; } /** * @param int $value * * @return self */ public static function notZeroInt(int $value) : string { if (0 === $value) { throw new InvalidArgumentException('Значение должно быть не равным нолю.'); } return __CLASS__; } /** * @param float $value * * @return self */ public static function unsignedFloat(float $value) : string { if (0 > $value) { throw new InvalidArgumentException('Значение должно быть не отрицательным.'); } return __CLASS__; } /** * @param float $value * * @return self */ public static function notZeroFloat(float $value) : string { if (0 === $value) { throw new InvalidArgumentException('Значение должно быть не равным нолю.'); } return __CLASS__; } /** * @param string $value * * @return self */ public static function notEmptyString(string $value) : string { if ('' === $value) { throw new InvalidArgumentException('Значение должно быть не пустой строкой'); } return __CLASS__; } } Assert::notZeroInt(3)::unsignedInt(3); Assert::notZeroInt(0)::unsignedInt(0);
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
Fatal error: Uncaught InvalidArgumentException: Значение должно быть не равным нолю. in /in/AsP8p:27 Stack trace: #0 /in/AsP8p(77): Assert::notZeroInt(0) #1 {main} thrown in /in/AsP8p on line 27
Process exited with code 255.

preferences:
82.03 ms | 407 KiB | 5 Q