这是我想要完成的简化版本:
在我的脚本中,我希望每次按下提交按钮时都会增加一个静态变量x。
"(-?\\d+)\\s*/\\s*(-?\\d+)\\s*\\+?\\s*(-?\\d+)\\s*/\\s*(-?\\d+)\\s*i"
但是在提交后每页重新加载时初始化为x = 0 。
答案 0 :(得分:1)
您每次加载页面时都会重新加载变量,所以它总是一样。
解决方案是将其存储在会话中,然后在那里增加它。如果变量已经存在,请包含条件以创建变量。
<?php
session_start();
if (!isset($_SESSION['x'])) {
$x = $_SESSION['x'];
} else {
$x = 0;
}
$x++;
echo $x;
$_SESSION['x'] = $x;
?>
答案 1 :(得分:0)
<?php
session_start();
$x = 0;
if (isset($_SESSION['x'])) {
$x = $_SESSION['x'];
$x++;
} else {
$_SESSION['x'] = $x;
}
// /$x++;
echo $x;
$_SESSION['x'] = $x;
?>
答案 2 :(得分:0)
Apache没有跟踪点击之间的php scrips中的变量,你必须将它存储在某个地方,无论是$_SESSION
还是数据库。
此外,static关键字并没有像您认为的那样做。它适用于在单个运行的脚本中连续调用函数,但不适用于点击之间。
无论如何,您可以使用三元运算符来实现这一点,您是否恰好将其放入会话中。我还添加了一项检查,以确保变量实际上是一个可行的计数:
session_start();
$_SESSION['x'] = isset($_SESSION['x']) && is_int($_SESSION['x'])
? $_SESSION['x'] + 1
: 1;
echo $_SESSION['x'];