2013-10-14 69 views
1

这有点难以解释,但我会尽我所能。PHP - 停止执行调用函数

这与我目前运行的代码类似。

function func1() 
{ 

    func2() 

} 

function func2() 
{ 

    exit(); 

} 

我需要能够从FUNC2内停止FUNC1的执行,但我需要一个更好的方式来做到这一点比退出()。由于func1的调用者可能有其他操作要做,我不想阻止它们,我只想停止func1的其余部分执行。

我知道我可以在func1中放置一个简单的if语句来检测func2的返回值,然后返回它是否为特定值,但这也有点麻烦。

所以我的问题是,我怎样才能停止从函数内的调用函数的其余部分的执行?

+0

抛出异常? –

回答

2

返回一个值并检查它。

function func1() 
{ 
    $result = func2(); 
    if ($result === 0) return; 

    // Your func1 code here 
} 

function func2() 
{ 
    if (...) return 1; 
    else return 0; 
} 
+0

不,这不被认为是凌乱的......这就是函数应该如何工作。 –

0

检查返回值并不杂乱。这是标准做法。你基本上有两种选择:

  • 检查返回值。
  • 在func2中抛出异常。如果它在func1中未被捕获,它将会升级并在两个函数中停止执行。
0

这绝对没有办法。

切记:func2()可以从任何地方拨打,不仅可以拨打func1()。你怎么知道你正在停止的是func1。

不管是什么让你觉得中断调用函数将解决问题 - 再次思考,并告诉我们关于适当建议的更大的图片。