Php 如何使用eval从函数返回?

Php 如何使用eval从函数返回?,php,Php,我有一个函数,基本上是这样的: function myfunction(){ eval("return;"); echo 'this line has to not show up'; } 出于技术原因,必须在eval指令中决定是否从函数返回,但上述方法不起作用。我怎样才能做到这一点呢?你不能。eval的内容被视为它们自己的上下文,因此“return”被解释为退出eval'd字符串,并将控件返回给函数。需要考虑的几个备选方案: 从eval字符串返回一个值,该值确定要执行的操作

我有一个函数,基本上是这样的:

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

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

你不能。
eval
的内容被视为它们自己的上下文,因此“return”被解释为退出eval'd字符串,并将控件返回给函数。需要考虑的几个备选方案:

  • 从eval字符串返回一个值,该值确定要执行的操作,例如
    if(eval('Return true;'){Return;}
  • 在eval'd字符串中抛出异常,并在调用此函数的任何位置捕获它
  • 首先不要使用eval。总有比使用eval更好的方法。在不知道您使用此代码的目的的情况下,我不能说得更具体,但我强烈建议更改您的设计,而不是继续沿着这条路线
这可能会有所帮助:如果您必须使用
eval
,请评估整个函数:我猜还有更好的选择。