2016-11-24 84 views
0

我试图让每个页面加载时会话变量在0和1之间变化。PHP会话变量 - 页面加载时更改

所以第一次加载页面

$_SESSION['turn'] = 0; 

第二次

$_SESSION['turn'] = 1; 

第三次

`$_SESSION['turn'] = 0;` 

等。

然后我可以稍后在页面中调用该变量。

我无法解决如何做到这一点。我已经尝试了一个简单的IF函数,但无法让它工作。

回答

1

试试这个页面加载的地方。

$_SESSION['turn']=1-$_SESSION['turn']; 

代码:

<?php 
session_start(); 
echo $_SESSION['turn']; 
$_SESSION['turn']=1-$_SESSION['turn']; 
?> 

编辑:RiggsFolly isset()函数是正确的。我错过了它,它会给日志中的错误。并且第一个值不是0

+0

这将错误时运行的第一次作为'turn'键的访客将不存在。 –

2

首先会话必须在希望使用会话数组的任何页面上启动。 session_start()

接下来你要记住,最初您正在使用的会话变量将不存在你第一次尝试使用它

所以

<?php 
session_start(); 

if (!isset($_SESSION['turn'])) { 
    // does not exist yet, so create with 0 
    // you may want to initialize it to 1, thats up to you 
    $_SESSION['turn'] = 0; 
} else { 
    $_SESSION['turn'] = $_SESSION['turn'] == 0 ? 1 : 0; 
} 
+0

完美!谢谢! – doorad