<?php
session_start();
if(isset($_SESSION['enter']))
$_SESSION['enter']=$_SESSION['enter']+1;
else
$_SESSION['enter']=1;
if ($_SESSION['enter']=7) {
unset($_SESSION['enter']);
$_SESSION['enter']=1; // here I want to count from beginning if there are seven enters
}
$enter = $_SESSION['enter'];
$enter = sprintf("%03d", $enter);
echo $enter; //keep always 001
?>
所以,我想计算页面从1
进入7
然后再回到1
......依此类推,但在上述情况下,它始终保持在{{ 1}}。
任何帮助。
答案 0 :(得分:3)
if ($_SESSION['enter']=7) {
==
,而不是=
答案 1 :(得分:1)
这是你的问题:
if ($_SESSION['enter']=7) {
您不是在比较这些值,而是分配它们并始终返回true
值,从而导致其后的代码运行。
只需将其更改为:
if ($_SESSION['enter']===7) {
在这种情况下,您也可以跳过if
并执行:
$_SESSION['enter'] = ($_SESSION['enter'] % 7) + 1;
在您的第一个if
声明中。有关modulus operator的更多信息。