php - PHP eval() 的工作方式与包含类似吗?(使用数据库中的代码加载页面)
问题描述
如果有人在 PHP 中使用 eval(),这个方法的行为是否与包含字符串中的代码完全一样,除了出现解析错误时引发的错误?我知道安全问题,这只是一个临时但必要的解决方案。谢谢你。
编辑:您将如何制作一个类似于 Joomla 的小型框架,页面上有模块,但代码从数据库加载?这个选项比为每个小问题和功能制作模块和组件要灵活得多,页面是使用 1 个 PHP 文件生成的,来自数据库,内容基于页码。
解决方案
它提供相同的结果,但不一定表现相同。最显着的区别是eval
速度要慢得多,因为它必须在每次迭代时执行解析步骤(绕过任何 opcache),并且必须在运行的 VM 上引导它。另一个区别是 include 允许返回值,因为它的行为更像一个表达式而不是函数/构造。
推荐阅读
- reactjs - 点击【React】后测试组件中的每个按钮是否被禁用
- azure - Azure Pipelines Universal Package 任务使用“publishedPackageVar”选项进行正确的版本部署
- spring-cloud-dataflow - 组合任务给出错误“java.sql.SQLException:READ_COMMITTED 和 SERIALIZABLE 是唯一有效的事务级别”
- python - SQLAlchemy 执行:如何为子查询交出参数
- android - Android - Google API 和 Youtube Data v3 的问题
- github - github 操作上的 Glob 降价文件仅返回 `docs` 文件夹
- python - 将带有多个引号/特殊字符的多行(来自另一个文件)回显到一个新文件中?
- javascript - 如何验证 react-hook-form multistep with yup.test 只有一次?
- java - 如何从 LogCat 中找到空指针错误的位置 - Android Studio
- sas - 在 SAS 中根据字符间隔有条件地更改第一行名称