php - 调用后端是否会创建该后端的新实例?

标签 php static backend slim

在开发 PHP 后端时,我决定使用静态变量来保存登录用户。 如果我没记错的话,只有在每次调用后端都会创建该后端的新实例时,这才有效。否则,当两个调用重叠时,登录的用户可能会被覆盖,从而产生错误的结果。

事实证明很难找到答案,因此我尝试编写一个单元测试,仅检查对后端的调用完成时静态“登录用户”变量是否仍然存在。这表明该变量确实为空。只是为了确定我决定在这里问这个问题。

最佳答案

是的,也不是。它确实“创建一个新实例”,从某种意义上说,静态变量不会在两者之间持久存在,而且它也没有,因为它本身实际上并不是 OOP 上下文中预期的“实例”。

static 关键字指的是用于该精确脚本运行的静态变量。

一旦发送响应,PHP 将忘记所有内容。每次 PHP 收到请求时,都会重新创建环境,两次运行之间不会保留任何内容。


然而,对用户使用静态似乎是一个坏主意。这太宽泛了,但您应该查看 dependency injection ,和mvc principles .

关于php - 调用后端是否会创建该后端的新实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44230273/

相关文章:

php - 有没有PHP框架的脚手架可以像Ruby on Rails一样生成迁移?

php - Vagrant 虚拟主机/共享文件夹无法访问

android - Kotlin 静态函数 : companion object, @JvmStatic @JvmField

swift - 设置惰性静态变量首先初始化然后分配?

compiler-construction - 制作一门语言,需要一个好的后端

javascript - JSON 有时未定义 - 我该如何检查?

php - 如何用变量数组替换多次出现的单个字符

java - 没有赋值的静态初始值设定项是什么意思?

python - 属性错误 : 'SigSafeLogger' object has no attribute 'logger'

python - Django Rest_framework.views 如何跳过数据库连接以获得简单的 REST API