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();

preferences:
34.98 ms | 406 KiB | 5 Q