【发布时间】:2011-08-03 19:32:38
【问题描述】:
我们可以使用以下代码简单地覆盖默认的 php 函数:
namespace blarg;
function time() {
echo "test !";
}
time();
但是!是否可以覆盖“eval”函数?
namespace blarg;
function eval() {
echo "test !";
}
eval();
?
提前致谢
根据答案:
- eval() 是一种语言结构而不是函数,我们不能覆盖它
2.在我的示例中,我并没有真正覆盖 time() 函数。我只是在创建一个 blarg\time() 函数
我明白
但是
实际上,我正在像调试器一样编写总和,我需要更改 php 函数或某些语言结构(例如 eval)的默认行为
有没有办法做到这一点?
是否可以更改 php 源并编译它? (有没有要编辑的特定文件?)
【问题讨论】:
-
eval() 是一种语言结构,而不是一个函数,你不能覆盖它。
-
您并没有真正覆盖示例中的 time() 函数。你只是在创建一个
blarg\time()函数。 -
这是类似的 SO 问题 - stackoverflow.com/questions/2326835/…
标签: php