在开发 PHP 后端时,我决定使用静态变量来保存登录用户。 如果我没记错的话,只有在每次调用后端都会创建该后端的新实例时,这才有效。否则,当两个调用重叠时,登录的用户可能会被覆盖,从而产生错误的结果。
事实证明很难找到答案,因此我尝试编写一个单元测试,仅检查对后端的调用完成时静态“登录用户”变量是否仍然存在。这表明该变量确实为空。只是为了确定我决定在这里问这个问题。
最佳答案
是的,也不是。它确实“创建一个新实例”,从某种意义上说,静态变量不会在两者之间持久存在,而且它也没有,因为它本身实际上并不是 OOP 上下文中预期的“实例”。
static 关键字指的是用于该精确脚本运行的静态变量。
一旦发送响应,PHP 将忘记所有内容。每次 PHP 收到请求时,都会重新创建环境,两次运行之间不会保留任何内容。
然而,对用户使用静态似乎是一个坏主意。这太宽泛了,但您应该查看 dependency injection ,和mvc principles .
关于php - 调用后端是否会创建该后端的新实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44230273/