例如
function main(){
function sub(){
$a = false;
if(!$a) return main function;
}
}
这样的事情是可能的,还是有类似的解决方案?
答案 0 :(得分:1)
为什么不呢?但必须退出。
function main($exit = false){
echo 'begin main' . '<br>';
if ($exit) {
echo 'exit main' . '<br>';
return;
}
function sub(){
echo 'sub' . '<br>';
return main(true);
}
echo 'end main' . '<br>';
}
如果我们致电sub()
,我们会收到致命错误 - sub()
只会在调用main()
时定义。
但是,如果我们先调用main()
然后调用sub()
,则sub将起作用:
main();
// begin main
// end main
sub();
// sub
// begin main
// exit main
答案 1 :(得分:1)
PHP没有&#34;子功能&#34;。你在这里有两个全局函数,但main()
只会在调用Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
时定义.....之后,它们是完全独立的函数。
答案 2 :(得分:0)
main()必须从某个地方调用,所以你可以将调用包装成try-catch结构并使用异常退出内部函数:
try{
main();
}catch(SubException $e){
...
}
function main(){
function sub(){
$a = false;
if(!$a) throw new SubException(...);
}
}