我已经做了近一年的PHP东西,eval()虽然我知道它的用法,但我从未使用过该函数.但是我在SO中发现了很多关于它的问题.所以有人能告诉我一个简单的例子,它有必要使用eval()吗?这是一个好的或坏的做法?
use*_*291 10
eval()是实现像Smarty这样的"编译"模板引擎所必需的,它使用自己的语言并在运行时将其编译成php.这种引擎的主要功能通常是类似的
function render_template($path) {
$code = file_get_contents($path);
$php = $this->compile_to_php($code);
eval($php);
}
Run Code Online (Sandbox Code Playgroud)
除此之外,每次使用"include"或"require"时,你实际上都在使用"eval" - 所以,实际上,eval是最常用的php结构之一.
使用eval()是一种不好的做法,如果事实证明是必要的,那通常是潜在设计错误的标志.
我想不出有必要使用的任何情况eval().(即东西不能用其它语言结构,或通过固定一个破碎的设计来实现的.)有兴趣看到任何真正的情况是否来这里那里的eval实际上是必要的或替代将是可怕的复杂.
可能需要的唯一实例是执行来自外部源的代码(例如数据库记录).但这本身就是IMO的设计错误.
| 归档时间: |
|
| 查看次数: |
1348 次 |
| 最近记录: |