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

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

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

function func1()
{

     func2()

}

function func2()
{

     exit();

}

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

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

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

【问题讨论】:

    标签: php call execution


    【解决方案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。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-22
        • 1970-01-01
        • 2021-10-25
        • 1970-01-01
        • 1970-01-01
        • 2012-10-07
        • 1970-01-01
        • 2021-03-10
        相关资源
        最近更新 更多