NoneEval - это функция, которая позволяет программисту выполнять произвольный код, написанный на том же языке, из строковой переменной в коде.

eval- это функция, доступная на нескольких языках программирования (включая php, ruby, python, bash, javascript и др.), которая позволяет программистам выполнять произвольный код, написанный на том же языке, из строковой переменной в коде.

Документация

Недостатки

Использование evalФункция обычно считается плохой практикой по ряду причин:

  • Что наиболее важно, это может вызвать серьезные проблемы с безопасностью в любом коде, который использует eval. Потому какeval будет запускать любой код на своем языке, хакер может использовать evalоператор для запуска собственного кода и, таким образом, компрометации системы. Чтобы минимизировать эффект, программист должен проверить синтаксис оператора, который должен быть оценен.

  • Во-вторых, он медленный. Большинство языков, даже интерпретируемых, таких как php и javascript, имеют встроенные оптимизаторы и своевременные компиляторы для ускорения выполнения. Однако код запускается черезeval Оператор не может быть оптимизирован, так как интерпретатор не может знать точный код, который будет запускаться, пока не станет слишком поздно для выполнения любых оптимизаций.

  • Наконец, почти во всех случаях использование eval не является необходимым, так как желаемый эффект почти всегда может быть достигнут без его использования.