как обрабатывать ошибку синтаксического анализа для функции eval в php

Я пытаюсь использовать функцию eval для php. но я застрял в обработке ошибки синтаксического анализа. например, если у меня есть краевые случаи, такие как 1 .. или 1 ++, если дает мне ошибку синтаксического анализа: синтаксическая ошибка, …..

кто знает, как обрабатывать синтаксическую ошибку или как обходить сообщение об ошибке? Я хочу дать лучшее сообщение об ошибке.

также можно ли сохранить сообщение об ошибке переменной?

ТИА

Related of "как обрабатывать ошибку синтаксического анализа для функции eval в php"

 $response = @eval($string); if (error_get_last()){ echo 'Show your custom error message'; //Or you can print_r(error_get_last()); } 

Из руководства

Начиная с PHP 7, если в оцененном коде есть ошибка синтаксического анализа, eval() выдает исключение ParseError . До PHP 7 в этом случае eval() вернул FALSE и выполнение следующего кода продолжалось нормально. Невозможно поймать ошибку синтаксического анализа в eval() используя set_error_handler() .

Вместо этого используйте это:

 <?php try { eval('will cause error'); } catch (ParseError $e) { echo 'Caught exception: '.$e->getMessage()."\n"; } 

Из руководства :

Если в оцененном коде есть ошибка синтаксического анализа, eval() возвращает FALSE и выполнение следующего кода продолжается нормально. Невозможно поймать ошибку синтаксического анализа в eval() используя set_error_handler() .

Но как вы не будете называть eval на произвольный код (правильно?), Это не должно быть проблемой.