拥有PHP的SuperGlobal变量?

时间:2011-11-24 11:58:09

标签: php apache variables globals

前几天我正在阅读有关SuplerGlobals的内容,例如$ _SERVER或(详见PHP Manual Superglobals),现在,我问我:

是否可以实施自己的SuperGlobals? 除了常数......

因此,例如,用户A在变量中写入一些内容,如果用户B正在调用它,则可以看到。 像服务器范围的会话变量之类的东西。

请不要努力,如果这是一个愚蠢的问题:) 我知道外面有几种方式,比如SQL,Xml和Stuff,但也许......

5 个答案:

答案 0 :(得分:3)

你对PHP超级全球的整体想法是错误的。
这些变量始终只能用于一个脚本运行时,而不是整个站点。

答案 1 :(得分:2)

PHP没有可以在用户之间共享的上下文。你应该像SQL服务器或文件一样替换。您还可以查看一些可能有助于您实现目标的memcache扩展程序。

答案 2 :(得分:2)

  

前几天我正在阅读有关SuplerGlobals的内容,如$ _SERVER或(详见PHP手册Superglobals),现在,我问我:

     

是否可以实施自己的SuperGlobals?除了常数......

是的,如果您有PHP runkit分机,则可以。

  

因此,例如,用户A在变量中写入了一些内容,如果用户B正在调用它,则可以看到

这不是超级全球所做的 - 它们是存在于全局范围内的变量(即在脚本实例的持续时间内)。

如果要在不同的调用之间共享数据,则需要将其发送到存储层或(如果是单个客户端的数据)发送到浏览器。

由于您在此处描述的内容实际上是一个共享会话,因此实现此目的的合理位置将在会话处理程序中。

答案 3 :(得分:1)

这是不可能的,您只能看到自己的会话数据。

要实现此目的,您需要将数据存储在其他位置。在文本文件或MySQL数据库中最常见。

答案 4 :(得分:0)

我想您可以使用(asterix)export yourvar="something"(asterix)并使用getenv

接收它 sry,不知道如何嵌入asterix =`,但最好还是避免它......

如果您使用以下apache可以使用: http://php.net/manual/en/function.apache-setenv.php

相同的想法,环境变量