PHP eval() 的工作方式与包含类似吗?(在数据库中加载带有代码的页面)



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

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

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

最新更新