PHP - 停止调用函数的执行[关闭]

Posted

技术标签:

【中文标题】PHP - 停止调用函数的执行[关闭]【英文标题】:PHP - Stopping the execution of the calling function [closed] 【发布时间】:2013-10-14 20:41:30 【问题描述】:

这有点难以解释,但我会尽力而为。

这类似于我当前正在运行的代码。

function func1()


     func2()



function func2()


     exit();


我需要能够从 func2 中停止 func1 的执行,但我需要一个比 exit() 更好的方法来完成它。由于 func1 的调用者可能有其他操作要做,我也不想停止它们,我只想停止 func1 的其余部分执行。

我知道我可以在 func1 中放一个简单的 if 语句来检测 func2 的返回值,如果是某个值则返回,但这也有点乱。

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

【问题讨论】:

【参考方案1】:

返回一个值并检查它。

function func1()

    $result = func2();
    if ($result === 0) return;

    // Your func1 code here


function func2()

    if ( ... ) return 1;
    else return 0;

【讨论】:

不,这不被认为是杂乱无章的......函数应该是这样工作的。【参考方案2】:

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

检查返回值。 在 func2 中引发异常。如果它在 func1 中未被捕获,它将冒泡更高并停止在两个函数中执行。

【讨论】:

【参考方案3】:

这绝对不可能。

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

无论是什么让您认为中断调用函数可以解决问题 - 再想一想,并告诉我们更大的图景以获得适当的建议。

【讨论】:

以上是关于PHP - 停止调用函数的执行[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥调用未定义函数时没有 PHP 错误?

0179 定时器 之 setTimeout() :开启定时器,5秒后关闭广告案例,停止定时器

Qt窗口关闭和应用程序停止是否调用析构函数的一些说明

Qt窗口关闭和应用程序停止是否调用析构函数的一些说明

如何正确停止线程

我需要一个允许以不同间隔执行任务的 Nodejs 调度程序 [关闭]