请告诉我,我做错了什么,我应该如何解决这个问题。
我正在尝试创建一个简单的计数器,它将依赖于每次访问(页面)加1,并在数字为5时停止。但这不起作用 - 每次返回相同的数字。< / p>
$x = 1;
while($x <= 5) {
echo "The number is: $x <br>";
$x = $x++;
break;
}
答案 0 :(得分:1)
你有3个问题。
break
,它会终止循环$x++;
是一个独立的声明。您不需要将$x
设置为试试这个
session_start();
if(!isset($_SESSION['visit'])) $_SESSION['visit'] = 1;
if($_SESSION['visit'] < 5) $_SESSION['visit']++;
答案 1 :(得分:1)
如果我理解正确你需要使用一个会话变量 - 我有可能误解了。
session_start();
$name='counter';
$max=5;
if( !isset( $_SESSION[$name] ) ) $_SESSION[$name]=0;
if( $_SESSION[$name] <= $max ) $_SESSION[$name]++;
echo 'Page visits: '.$_SESSION[$name];
答案 2 :(得分:0)
问题是,在脚本的执行之间不保留变量的值。每次用户访问此页面时,$x
将为1。
每次请求页面时,您的脚本将从头开始执行。它会将$x
定义为1,显示其值(此时为1
),递增它然后停止,因为您将break
放在while
的末尾1}}循环体。即使你删除了break
所有你要完成的事情,这个计数器在同一页上显示5次,值为1到5。
如何“修复”这个问题太过广泛,无法详细解答。所以这里有几个模糊的选项供您考虑: