<?php
error_reporting(E_ALL);
function exec_eval($code) {
try {
$result = @eval($code);
$err = error_get_last();
var_dump($err);
return [$result, $err ? $err["message"] . PHP_EOL : $err/* // PHP5 */];
} catch(\Error $e) { // PHP7
var_dump("ERROR");
return [null, $e->getMessage()];
} catch(\Exception $ex) {
var_dump("Exception");
return [null, $ex->getMessage()];
}
}
var_dump(exec_eval("xdfadsfsd"));
- Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 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.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
- string(5) "ERROR"
array(2) {
[0]=>
NULL
[1]=>
string(36) "syntax error, unexpected end of file"
}
- Output for 5.5.0 - 5.5.35, 5.6.0 - 5.6.28
- array(4) {
["type"]=>
int(4)
["message"]=>
string(36) "syntax error, unexpected end of file"
["file"]=>
string(28) "/in/PO8Vl(6) : eval()'d code"
["line"]=>
int(1)
}
array(2) {
[0]=>
bool(false)
[1]=>
string(37) "syntax error, unexpected end of file
"
}
preferences:
215.14 ms | 402 KiB | 240 Q