如何在PHP中创建持久数组变量?

时间:2016-04-27 18:58:04

标签: php web-applications superglobals

我正在用PHP编写一个Web应用程序,我想声明一个数组,我想在其中保存主机以及该主机打开我的Web应用程序的频率。我想将变量添加到JSP中的应用程序范围。我试图将此数组添加到$ _SERVER,但这没有用。如果我尝试使用$ _SERVER [$ _ GET [“id”]]访问另一个文件中的变量,则该变量始终为NULL。有人可以帮助我吗?

这是我的代码:

if(empty($_SERVER[$_GET["id"]])){
  $_SERVER[$_GET["id"]]=array($country, 1);
}else{
  $_SERVER[$_GET["id"]][$country]+=1;
}

1 个答案:

答案 0 :(得分:4)

几件事:

  1. $ _ SERVER用于SERVER,不要用它来播放全局数组。
  2. $ _ SESSION返回null,因为您可能没有声明任何内容 session_start位于文件的开头。如果不这样做,会话cookie(变量)不会被共享,这就是它为null的原因。
  3. 这是vanilla php的基础。

    从这里开始,你可以探索一个内置的微框架......

    <强>更新

    由于您对“会话”的误解,您要做的是保留数据。如果你想在不同的用户之间“共享”你的这个数组(也就是会话中的数据共享),我建议通过数据存储来保持:

    • sqlite / memory或sqlite / file
    • redis(值/键及其快速)
    • mysql或任何sql / no-sql
    • 最不利的IMO:写入一个简单的文件并检索。唯一的问题是,你将有“锁定”状态,但其他人也会这样做