2014-09-23 82 views
0

问题是如何从嵌套函数调用中退出函数?换句话说:php返回函数退出点

function action() { 
    // some working code 
    KillingFunction(); 
    // code, that will not execute 
} 

伪代码,功能可能看起来像:

function KillingFunction() { 
    return return; 
} 

我当然可以:

function KillingFunction() { 
    die(); 
} 

但在这样的情况下,即低于操作的所有代码()将会死亡。

这种情况是否有某种生活方式?

+0

为什么你需要这样的功能? – 2014-09-23 07:54:48

+1

'break;'? – MaveRick 2014-09-23 07:57:38

+0

你不能这样做。如果'KillingFunction()'是从顶级脚本而不是函数调用的呢? – Barmar 2014-09-23 07:57:41

回答

3

只是检查内部函数返回值:

function main($terminate) { 
    if (dieFunction($terminate)) { 
     return false; 
    } 

    echo "Not dead too!"; 
    return true; 
} 

function dieFunction($terminate = true) { 
    if ($terminate) { 
     return false; 
    } 

    echo "I'm not dead!"; 
    return true; 
} 

main(true); // no output; 
main(false); // "I'm not dead!Not dead too!" 

您可以返回值适用不同的逻辑。

0

您可以退出使用return功能:

function action() { 
    // some working code 
    return 0; 
    // code, that will not execute 
} 
+0

我认为他知道这一点。他希望在'KillingFunction'中加入一些东西,这会强制呼叫者立即返回。 – Barmar 2014-09-23 08:00:45

+0

嗯。然后我想知道他为什么要使用'KillingFunction' .. – JoelP 2014-09-23 08:02:46

+1

想必它会做一些事情,然后或者正常返回或者使调用者返回。目前尚不清楚整体意图是什么,它似乎是一个糟糕的不良联动模式。 – Barmar 2014-09-23 08:05:18