如何使用eval从函数返回?

时间:2015-04-18 19:21:54

标签: php

我有一个基本上是这样的功能:

function myfunction(){
    eval("return;");
    echo 'this line has to not show up';
}

由于技术原因,必须在eval指令中做出从函数返回(或不返回)的决定,但上述方法不起作用。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

你不能。 eval的内容被认为是他们自己的背景,因此"返回"被解释为退出eval>字符串,并将控制权返回给函数。一些需要考虑的替代方案:

  • 从eval字符串返回一个值,确定要采取的操作,例如: if ( eval('return true;') ) { return; }
  • 在eval' d字符串中抛出异常,并在您调用此函数的任何地方捕获它。
  • 首先不要使用eval 。与使用eval相比,几乎总是有更好的方法。在不知道您使用此代码的情况下,我不能更具体,但我强烈建议您更改设计,而不是继续沿着此路线前进。