3v4l.org

run code in 300+ PHP versions simultaneously
<?php class ErrorLog { static $errorArr = array(); public static function throwError ($err, $level = E_USER_WARNING, $suppress = false, $shiftBack = 1) { // Shiftback means: look back into the backtrace calls, shifting that amount of calls, and then report the error. // There is no checking whether this many levels actually exist in the call stack, make sure yourself // Error log doesn't show newlines. str_replace( array( "\n" ), array( " " ), $err ); $trace = self::getBacktrace(); $info = ""; if (!empty($trace)) { while ($shiftBack > 0) { array_shift($trace); --$shiftBack; } // Error file/line information: $info .= "in " . $trace[0]["file"] . ":" . $trace[0]["line"] . "."; // Caller information: if (count($trace) > 1) { array_shift($trace); $caller = $trace[0]; $info .= " Thrown by "; if (isset($caller["function"])) { if (isset($caller["class"])) { $info .= $caller["class"] . "::"; } $info .= $caller["function"] . "() "; } else { $info .= "global scope "; } $info .= "which was called in " . $caller["file"] . ":" . $caller["line"] . "."; } } $queryStr = $_SERVER["QUERY_STRING"]; $info .= " (Called URL: " . $_SERVER["HOST_NAME"] . $_SERVER["PHP_SELF"] . (!empty($queryStr) ? ("?" . $queryStr) : "") . ")"; $out = "\"" . $err . "\" " . $info; self::$errorArr[] = $err; if (!$suppress) { trigger_error($out, $level); } } public static function throwDeprecated ($suppress = false) { // Call this method from INSIDE a deprecated function, self::throwError("Deprecated!", E_USER_NOTICE, $suppress, 2); } private static function getBacktrace () { if (version_compare(PHP_VERSION, "5.2.5", "<")) { return debug_backtrace(); } else { return debug_backtrace(false); // A bit more efficient } } } function a () { ErrorLog::throwDeprecated(); } a();
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Warning: Undefined array key "QUERY_STRING" in /in/7Kb5l on line 53 Warning: Undefined array key "HOST_NAME" in /in/7Kb5l on line 54 Notice: "Deprecated!" in /in/7Kb5l:82. Thrown by a() which was called in /in/7Kb5l:85. (Called URL: /in/7Kb5l) in /in/7Kb5l on line 61
Output for 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.31, 7.4.0 - 7.4.25, 7.4.27 - 7.4.33
Notice: Undefined index: QUERY_STRING in /in/7Kb5l on line 53 Notice: Undefined index: HOST_NAME in /in/7Kb5l on line 54 Notice: "Deprecated!" in /in/7Kb5l:82. Thrown by a() which was called in /in/7Kb5l:85. (Called URL: /in/7Kb5l) in /in/7Kb5l on line 61
Output for 7.3.32 - 7.3.33, 7.4.26
Notice: "Deprecated!" in /in/7Kb5l:82. Thrown by a() which was called in /in/7Kb5l:85. (Called URL: /in/7Kb5l) in /in/7Kb5l on line 61
Output for 5.2.3 - 5.2.17
Notice: Undefined index: QUERY_STRING in /in/7Kb5l on line 53 Notice: Undefined index: HOST_NAME in /in/7Kb5l on line 54 Notice: "Deprecated!" in /in/7Kb5l:82. Thrown by a() which was called in /in/7Kb5l:85. (Called URL: /in/7Kb5l) in /in/7Kb5l on line 61
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.2
Notice: Undefined index: QUERY_STRING in /in/7Kb5l on line 53 Notice: Undefined index: HOST_NAME in /in/7Kb5l on line 54 Notice: "Deprecated!" in /in/7Kb5l:82. Thrown by a() which was called in /in/7Kb5l:85. (Called URL: ) in /in/7Kb5l on line 61
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/7Kb5l on line 4
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/7Kb5l on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/7Kb5l on line 4
Process exited with code 255.

preferences:
293.31 ms | 401 KiB | 460 Q