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



长时间使用 C - PHP 新手。

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

我有一个在页面执行中多次调用的函数。 函数的结果取决于变量中保存的上一个子结果。 我为这些"子结果"使用全局变量编写了函数,以便保存它们并在下一次函数调用中再次使用。

我担心的是,当多个客户端命中请求同一页面的服务器时,这些"子结果"变量将被同时执行的多个页面损坏。

这是一个问题吗?

如果是这样,我是否可以将"子结果"变量放在页面执行中调用的函数的本地,并通过引用将它们传递给函数? 这应该使变量的作用域仅限于当前客户端的页面执行,而不受其他客户端的影响,对吗?

如果这是正确的 - 有没有更好的方法来实现这一目标?

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

正如Dan Lugg在评论中指出的那样:

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

最新更新