eval Вычисляет строку как PHP-код &reftitle.description; mixedeval stringcode Функция вычисляет параметр code как PHP-код. Код, который вычисляет функция, наследует область видимости переменных той строки, на которой вызвали языковую конструкцию eval. Каждая переменная, доступная на этой строке, будет доступна для чтения и изменения в коде, который вычисляет языковая конструкция. При этом функции и классы, которые объявят в выполняемом коде, получат глобальную область видимости. Говоря по-другому, компилятор вычислит код так, как если бы это был отдельный подключённый файл. Языковая конструкция eval очень опасна, поскольку разрешает выполнять произвольный PHP-код. Поэтому не рекомендуется пользоваться этой языковой конструкцией. Если тщательная проверка показала, что нет другого выхода, кроме как использовать эту конструкцию, внимательно проверяют, чтобы в языковую конструкцию не передавались пользовательские данные без правильной предварительной проверки. &reftitle.parameters; code Корректный PHP-код для оценки и выполнения. Код нельзя оборачивать открывающим и закрывающим PHP-тегами, то есть необходимо передать 'echo "Привет!";', а не '<?php echo "Привет!"; >'. По-прежнему разрешается переключаться между режимами PHP- и HTML-кода, например: 'echo "Код PHP!"; ?>Код HTML<?php echo "Снова код PHP!";'. Строка кода должна быть корректным PHP-кодом. Требование включает и то, что инструкции требуется правильно разделять точкой с запятой. Строка 'echo "Привет!"' сгенерирует ошибку синтаксиса, а строка 'echo "Привет!";' будет работать. Инструкция return немедленно прекратит вычисление кода. Код выполнится в области видимости кода, который вызывал конструкцию eval. Поэтому переменные, которые определили или изменили в вызове eval, сохранят видимость после завершения вызова конструкции. &reftitle.returnvalues; Языковая конструкция eval возвращает значение &null;, если только в вычисляемом коде не вызывается инструкция return. Начиная с PHP 7, если в вычисляемом коде допустили синтаксическую ошибку, конструкция eval выбрасывает исключение ParseError. До PHP 7 в таких случаях eval возвращала логическое значение &false;, а следующий код выполнялся в обычном режиме. Невозможно отловить синтаксическую ошибку в конструкции eval функцией set_error_handler. &reftitle.examples; Пример использования языковой конструкции <function>eval</function> — простое слияние текста ]]> &example.outputs; &reftitle.notes; ¬e.language-construct; &tip.ob-capture; Весь скрипт завершает работу, если в вычисляемом коде возникла фатальная ошибка. &reftitle.seealso; call_user_func