3v4l.org

run code in 300+ PHP versions simultaneously
<?php class MyException extends Exception { function __construct(string $message = "", int $code = 0, Throwable $previous = null) { parent::__construct($message, $code, $previous); $this->code = ['foo']; } } try { throw new MyException(); } catch (Exception $ex) { var_dump($ex); }
Output for 8.4.1 - 8.4.12
Deprecated: MyException::__construct(): Implicitly marking parameter $previous as nullable is deprecated, the explicit nullable type must be used instead in /in/KdCAm on line 4 object(MyException)#1 (7) { ["message":protected]=> string(0) "" ["string":"Exception":private]=> string(0) "" ["code":protected]=> array(1) { [0]=> string(3) "foo" } ["file":protected]=> string(9) "/in/KdCAm" ["line":protected]=> int(11) ["trace":"Exception":private]=> array(0) { } ["previous":"Exception":private]=> NULL }
Output for 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.25
object(MyException)#1 (7) { ["message":protected]=> string(0) "" ["string":"Exception":private]=> string(0) "" ["code":protected]=> array(1) { [0]=> string(3) "foo" } ["file":protected]=> string(9) "/in/KdCAm" ["line":protected]=> int(11) ["trace":"Exception":private]=> array(0) { } ["previous":"Exception":private]=> NULL }

preferences:
140.5 ms | 409 KiB | 5 Q