PHP 静态变量在页面加载后重新加载

标签 php forms static reload

这是我想要完成的简化版本:

在我的脚本中,我希望每次按下提交按钮时静态变量 x 都会递增。

<?php
function IncX(){
   static $x = 0;
    $x++;
    echo $x;
}
?>

<body>
<form>
<input type="submit" name="submit" class="next btn btn-primary" value="Submit" />
</form>
</body>

但提交后每次重新加载页面时都会初始化为 x=0

最佳答案

每次加载页面时都会重新加载变量,因此它始终是相同的。

解决方案是将其存储在 session 中,然后在其中递增。如果变量尚不存在,请包含一个条件来创建该变量。

<?php
  session_start();
  if (!isset($_SESSION['x'])) {
    $x = $_SESSION['x'];
  } else {
    $x = 0;
  }
  $x++;
  echo $x;
  $_SESSION['x'] = $x;
?>

关于PHP 静态变量在页面加载后重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32905265/

相关文章:

python - 如何在 django 表单中包含 id 字段?

python - 没有表格的 Django 中的 Recaptcha?

forms - 在表单提交时使用 meteor 中的表单上传图像

php - 避免重复条目并缓存输入的表单值

javascript - 在随机位置创建 div

javascript - 无法使用 jQuery 刷新包含 php 代码的特定 div

PHP 在 Windows 上发送邮件导致发送电子邮件后为 'hang'

java - 重写(非)静态类中的私有(private)方法

php - 作为静态成员数组一部分的回调

javascript - 在 javascript 中使用原型(prototype)模式实现静态、私有(private)成员