2015-04-18 60 views
2

我有一個函數,基本上是這樣的:如何使用eval從函數返回?

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

由於技術原因,從函數返回(或沒有)的決定,已在EVAL指令進行,但上述方法沒有按」工作。我該如何做這項工作?

+0

這可能有所幫助:http://stackoverflow.com/questions/17672183/eval-does-not-return-the-function-results如果您必須使用'eval'然後評估整個函數:https: //eval.in/315419我猜測雖然有更好的選擇。 – bloodyKnuckles

回答

2

你不行。 eval的內容被認爲是它們自己的上下文,所以「return」被解釋爲退出eval的字符串,並將控制返回給函數。需要考慮的幾個備選方案:

  • 從eval字符串中返回一個值,用於確定要採取的操作,例如, if (eval('return true;')) { return; }
  • 在eval'd字符串中拋出一個異常,並在您調用此函數的任何地方捕獲該異常。
  • 不要首先使用eval。總比使用eval有更好的方法。不知道你使用的代碼是什麼,我不能更具體,但我強烈建議改變你的設計,而不是繼續沿着這條路線。
+0

非常感謝!你剛剛解決了我的頭痛! –