长时间使用 C - PHP 新手。
如果我在问题中使用这个词/术语,请原谅我。
我有一个在页面执行中多次调用的函数。 函数的结果取决于变量中保存的上一个子结果。 我为这些"子结果"使用全局变量编写了函数,以便保存它们并在下一次函数调用中再次使用。
我担心的是,当多个客户端命中请求同一页面的服务器时,这些"子结果"变量将被同时执行的多个页面损坏。
这是一个问题吗?
如果是这样,我是否可以将"子结果"变量放在页面执行中调用的函数的本地,并通过引用将它们传递给函数? 这应该使变量的作用域仅限于当前客户端的页面执行,而不受其他客户端的影响,对吗?
如果这是正确的 - 有没有更好的方法来实现这一目标?
每个PHP客户端(最好说是请求)都使用自己的数据上下文。这意味着,如果2
客户端同时连接并执行相同的PHP代码,则它们的变量不会共享,并且不能相互影响。
正如Dan Lugg在评论中指出的那样:
您需要使用外部数据持久性技术在 PHP 进程之间"共享"值。任何传统的数据库/存储/文件(考虑锁定)都可以共享状态。但是,如前所述,进程之间没有共享任何变量(无论静态/全局修饰符如何)