$GLOBALS 作用域问题 多个用户访问下$GLOBALS数据是否会冲突

wecliang

假设只开一个进程
A 用户访问进程时 给$GLOBALS['a'] = 111 赋值,
B 用户访问进程时 给$GLOBALS['b'] = 222 赋值,
这时候,A,B 用户是否会造成冲突。
如果多进程下,同一worker的$GLOBALS作用域是否也是共享。

1783 3 0
3个回答

phpcreeper

可以,对于单进程模型,不同的用户是共享超全局变量的。

  • 暂无评论
朕震惊了

不知道你说的冲突具体指的是哪方面。

$GLOBALS['a']$GLOBALS['b']使用的是不同的key,A用户修改$GLOBALS['a']肯定不会影响B用户的 $GLOBALS['b']

多进程下,每个进程的变量是隔离的,$GLOBALS 不会被多个进程共享,每个进程都有自己的$GLOBALS

  • wecliang 2020-05-21

    谢谢,同一进程下访问时异步还是同步的。 如果B用户 也对$GLOBALS['a']进行赋值, 这时候A用户访问有没有可能还没结束。

  • 朕震惊了 2020-05-21

    同步的

  • 朕震惊了 2020-05-21

    不会同时出现2段代码并行执行的情况。

  • wecliang 2020-05-21

    好的 谢谢。

phpcreeper

多进程之间的变量是不能跨进程操作和共享的。

  • 暂无评论
年代过于久远,无法发表回答
×
🔝