3v4l.org

run code in 300+ PHP versions simultaneously
<?php function three() { throw new RuntimeException('first exception'); } function two() { try { three(); } catch (Throwable $e) { throw new CustomException('custom', previous: $e); } } function one() { two(); } class CustomException extends Exception { public function getFullTrace() { return $this->getPrevious()?->getTrace() ?? $this->getTrace(); } } try { one(); } catch (CustomException $e) { var_dump($e->getFullTrace()); }
Output for 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array(3) { [0]=> array(4) { ["file"]=> string(9) "/in/m7HIQ" ["line"]=> int(9) ["function"]=> string(5) "three" ["args"]=> array(0) { } } [1]=> array(4) { ["file"]=> string(9) "/in/m7HIQ" ["line"]=> int(17) ["function"]=> string(3) "two" ["args"]=> array(0) { } } [2]=> array(4) { ["file"]=> string(9) "/in/m7HIQ" ["line"]=> int(29) ["function"]=> string(3) "one" ["args"]=> array(0) { } } }

preferences:
50.42 ms | 407 KiB | 5 Q