作为函数调用者执行返回

时间:2019-04-23 16:29:23

标签: php function scope return access

有没有一种方法可以将return语句作为函数的调用者执行? 拿

index.php:

require action.php

action.php:

require check.php
checkAccess() || return;
doSomeSecretStuff();

check.php:

function checkAccess() {
    if(loggedIn)
        return true;
    return false;
}

我想知道是否有一种方法可以执行该return语句,迫使action.php从checkAccess()内部停止?

有点像get_function_caller().eval("return");

(超级伪代码)

1 个答案:

答案 0 :(得分:0)

如果您有这个:

check();
foo();

check不能return为您提供 ,因此保证将执行foo。那是一件好事,否则您将无法保证代码中的执行流程。

唯一可能跳过foo执行的方法是,如果check中发生致命错误并且一切都停止了,或者(如果确实发生了)check 抛出

您将使用以下类似方式:

let foo = false;

function assertFoo() {
  if (!foo) {
    throw new Error('Not enough foo');
  }
}

function bar() {
  assertFoo();
  console.log('Barrr!');
}

try {
  bar();
} catch (e) {
  console.log(e.message);
}