首页 > 解决方案 > PHP eval() 的工作方式与包含类似吗?(使用数据库中的代码加载页面)

问题描述

如果有人在 PHP 中使用 eval(),这个方法的行为是否与包含字符串中的代码完全一样,除了出现解析错误时引发的错误?我知道安全问题,这只是一个临时但必要的解决方案。谢谢你。

编辑:您将如何制作一个类似于 Joomla 的小型框架,页面上有模块,但代码从数据库加载?这个选项比为每个小问题和功能制作模块和组件要灵活得多,页面是使用 1 个 PHP 文件生成的,来自数据库,内容基于页码。

标签: phpframeworksincludeeval

解决方案


它提供相同的结果,但不一定表现相同。最显着的区别是eval速度要慢得多,因为它必须在每次迭代时执行解析步骤(绕过任何 opcache),并且必须在运行的 VM 上引导它。另一个区别是 include 允许返回值,因为它的行为更像一个表达式而不是函数/构造。


推荐阅读