执行一个PHP方法一次
问题描述:
我称第一次这条路线,其中我把会话0:执行一个PHP方法一次
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
,在视图外核层y 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');
}
不行的,所以当我存取权限路线主页,方法index()被调用2次。现在我想如果我访问第一次主页(方法索引()被称为2次,并且会话中的值需要为0)。如果我第二次访问路由主页(方法index()被执行2次,并且该值需要为3) – TanGio
在你的情况下,我只得到'0 0' – TanGio
' isSecondCall){ \t \t $ _SESSION [ 'isFacebookRegistration'] = 3; \t \t} else { \t \t \t $ this-> isSecondCall = true; \t \t} \t \t var_dump($ _ SESSION ['isFacebookRegistration']); \t \t} \t} \t $ a = new Test; \t $ a-> index(); \t $ a-> index();' 适合我 – deniskoronets