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.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
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:
86.75 ms | 1135 KiB | 4 Q