不同客户端可见的PHP全局变量

时间:2018-12-31 00:09:36

标签: php variables

长时间使用C-PHP的新手。

如果我在问题中使用单词/术语,请原谅。

我有一个在页面执行过程中被多次调用的函数。函数的结果取决于变量中保存的先前的子结果。我为这些“子结果”使用全局变量编写了函数,因此将它们保存并在下一个函数调用中再次使用。

我担心的是,当多个客户端访问服务器请求同一页面时,那些“子结果”变量将被同时执行的多个页面破坏。

这是一个问题吗?

如果是这样,我能否在页面执行中将某个函数的局部“子结果”变量局部化,并通过引用将其传递给该函数?这样应该将变量的范围限制为当前客户端的页面执行,并且不受其他客户端的影响,对吗?

如果这是正确的-是否有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:3)

每个PHP客户端(最好是请求)都使用自己的数据上下文。这意味着,如果2个客户端同时连接并执行相同的PHP代码,则它们的变量将不会共享并且不会相互影响。

如丹·拉格(Dan Lugg)在评论中指出的那样:

  

您需要使用外部数据持久性技术在PHP流程之间“共享”价值。任何常规的数据库/存储/文件(考虑锁定)都可以使您共享状态。但是,如上所述,进程之间没有共享变量(无论静态/全局修饰符如何)