是的,我很清楚 Eval() 是多么可怕,我别无选择,它是为了作业,教授指示我们使用它。
我无法弄清楚为什么 PHP 不允许我在使用 Eval() 时从类中调用类的成员函数。例如:
$code="class evalTest{
function f1(){
echo 'f1';
f2();
}
function f2(){
echo 'f2';
}
}
$x=new evalTest();
$x->f2();
$x->f1();";
eval($code);
echo 'test';
上面的代码会打印出来:
f2f1
页面的其余部分将是空白的。一旦我通过 Eval() 从函数内调用函数,似乎整个 PHP 脚本就会停止。甚至最后的“回声‘测试’;” 不打印。
是否有一些技巧可以让它工作,或者这是 Eval() 的限制?同样,如果可以的话,我会避免使用 Eval(),但我们被明确指示使用它。