在 PHP 7 中不鼓励使用 Eval

标签 eval php-7

我正在获取字符串敌人示例中的公式

$a = '1*2*(2+3)';
echo eval($a) // Output should be 10

现在我正在尝试评估这个字符串并为此使用 eval 但在 php 7 中给我这个错误 Use of eval() is discouraged 所以我如何评估这个字符串。

最佳答案

PHP never raises any such error : 你应该怀疑第三方干扰了安装,可能安装了某种以“安全”为重点的扩展,它改变了 PHP 的行为。

所有这样的扩展都没有被 PHP 项目认可,而且很糟糕。

不管手册怎么说 eval,还是有 no technical difference在包含文件和评估一些代码之间。

现实世界中的唯一区别是 eval 代码可能包含用户输入:用户输入的清理和过滤对于不使用 eval 的 PHP 应用程序来说是个问题。

注意:您缺少计算表达式的返回值

关于在 PHP 7 中不鼓励使用 Eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40583208/

相关文章:

php - MySQL 到 Mysqli - 数据库类 - PHP

python - 在 Python 中使用 eval 或 exec 设置全局变量

PHP EVAL - 解决不安全问题

javascript - 获取对 JavaScript 中 eval() 期间创建的局部变量的引用

python - NameError:名称 'self' 未在 EXEC/EVAL 中定义

php - 使用 PHP 匿名类进行测试和模拟

php - 为什么我在引入属性类型提示时突然收到 "Typed property must not be accessed before initialization"错误?

php - Doctrine mysql 级联得到恢复

javascript - 利用 JavaScript 的 eval() 方法

laravel - Laravel 4.2 和 5.2 是否支持 PHP 7?