3v4l.org

run code in 300+ PHP versions simultaneously
<?php class InvalidArgumentType extends InvalidArgumentException { public function __construct(int $position, string $requiredType, $value) { $encoded = json_encode($value); if (strlen($encoded) > 10) { $encoded = sprintf('%s ... %s', substr($encoded, 0, 10), substr($encoded, -1)); } $inferredType = is_object($value) ? get_class($value) : gettype($value); parent::__construct(sprintf( 'Argument %d value %s should be %s but is %s.', $position, $encoded, $requiredType, $inferredType )); } } class Foo {} echo (new InvalidArgumentType(1, 'string', new Foo()))->getMessage().PHP_EOL; echo (new InvalidArgumentType(2, 'string', [1,2,3,4,5,6,7,8,9,10]))->getMessage().PHP_EOL; echo (new InvalidArgumentType(3, 'string', 123))->getMessage().PHP_EOL; echo (new InvalidArgumentType(2, 'string', null))->getMessage();
Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0 - 8.5.1
Argument 1 value {} should be string but is Foo. Argument 2 value [1,2,3,4,5 ... ] should be string but is array. Argument 3 value 123 should be string but is integer. Argument 2 value null should be string but is NULL.
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.

preferences:
154.28 ms | 407 KiB | 5 Q