0

前几天我正在阅读有关 SuplerGlobals 的内容,例如 $_SERVER 或(查看更多详细信息PHP Manual Superglobals),现在,我在问我:

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

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

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

4

5 回答 5

3

你对 PHP 超全局的整个想法是错误的。
这些变量始终仅在一个脚本运行时可用,而不是整个站点。

于 2011-11-24T12:00:14.710 回答
2

PHP 没有可以在用户之间共享的上下文。您应该进行一些替换,例如 SQL 服务器或文件。您还可以检查一些扩展,例如memcache,它们可能会帮助您实现目标。

于 2011-11-24T12:03:11.180 回答
2

前几天我正在阅读有关 SuplerGlobals 的内容,例如 $_SERVER 或(查看更多详细信息 PHP Manual Superglobals),现在,我在问我:

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

是的,如果你有PHP runkit扩展是可能的。

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

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

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

由于您在此处描述的实际上是共享会话,因此实现此功能的明智位置将是在会话处理程序中。

于 2011-11-24T13:28:25.273 回答
1

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

为此,您需要将数据存储在其他地方。在文本文件或 MySQL 数据库中是最常见的。

于 2011-11-24T12:00:08.797 回答
0

我想你可以(asterix)export yourvar="something"(asterix)使用 getenv 并接收它

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

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

同样的想法,环境变量

于 2011-11-24T12:01:22.243 回答