执行一次 PHP 方法

Execute a PHP method one time

我第一次调用我在会话 0 中放置的这条路由:

public function userCaptcha(){
    $_SESSION['isFacebookRegistration'] = 0;
}

之后,我调用了另一个由服务器执行 2 次的方法:

 public function index()
 {
    $this->session = $_SESSION['isFacebookRegistration'];
    error_log(print_r($_SESSION['isFacebookRegistration'],true), 3, "/tmp/error.log");
    $_SESSION['isFacebookRegistration'] = 3;
    return $this->render('template/index.twig');
 }

观点是:

{{ dump(session) }}

$_SESSION['isFacebookRegistration'] 的控制台中,我得到:0 3,仅在视图中 3。所以问题是,是否可以发送视图值 0 然后修改 3 中 $_SESSION['isFacebookRegistration'] 的值?我重复 index() 方法被服务器调用了 2 次。

你需要这个吗?如果我理解正确的话,因为我的英语不好

private $flag = false;

public function index()
{
    $this->session = $_SESSION['isFacebookRegistration'];
    error_log(print_r($_SESSION['isFacebookRegistration'],true), 3, "/tmp/error.log");

    if ($this->flag) {
        $_SESSION['isFacebookRegistration'] = 3;
    } else {
        $this->flag = true;
    }

    return $this->render('template/index.twig');
}

也可以多传一个参数(我觉得会更好):

public function index($changeSessionValue = false)
{
    $this->session = $_SESSION['isFacebookRegistration'];
    error_log(print_r($_SESSION['isFacebookRegistration'],true), 3, "/tmp/error.log");

    if ($changeSessionValue) {
        $_SESSION['isFacebookRegistration'] = 3;
    }

    return $this->render('template/index.twig');
}