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

时间:2015-10-02 10:29:57

标签: php forms static reload

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

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

"(-?\\d+)\\s*/\\s*(-?\\d+)\\s*\\+?\\s*(-?\\d+)\\s*/\\s*(-?\\d+)\\s*i"

但是在提交后每页重新加载时初始化为x = 0

3 个答案:

答案 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'];