【问题标题】:How can I create a persistent array var in PHP?如何在 PHP 中创建持久数组 var?
【发布时间】:2016-04-27 18:58:03
【问题描述】:

我正在用 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;
}

【问题讨论】:

    标签: php web-applications superglobals


    【解决方案1】:

    几件事:

    1. $_SERVER 是给 SERVER 用的,不要用它来播放全局数组。
    2. $_SESSION 返回 null 因为您可能没有声明任何 session_start 在文件的开头。如果您不这样做,则不会共享会话 cookie(变量),这就是它为 null 的原因。

    这是vanilla php的基础。

    从这里,您可以探索内置此功能的微框架...

    更新

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

    • sqlite/内存或 sqlite/文件
    • redis(值/键及其快捷方式)
    • mysql 或任何 sql/no-sql
    • 最不受欢迎的 IMO:写入一个简单的文件并检索。唯一的问题是,您将有“锁定”条件,但其他情况也会如此

    【讨论】:

    • $_Session 在我的问题中是一个错误。我使用了 $_Server。感谢您的回答,但它并没有解决我的问题。我想让每个用户都可以访问这个数组,而不仅仅是在实际会话中。
    • @holzfeli 请重新表述您的问题
    猜你喜欢
    • 2012-04-05
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2022-12-15
    • 2011-04-21
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多