调用后端是否会创建该后端的新实例?
Does calling a backend create a new instance of that backend?
在开发 PHP 后端时,我决定使用静态变量来保存登录用户。
如果我没记错的话,这只有在每次调用后端都创建该后端的新实例时才有效。否则,当两个调用重叠时,登录用户可能会被覆盖,从而产生错误的结果。
事实证明很难找到答案,因此我尝试编写一个单元测试,只检查当对后端的调用完成时静态 'logged in user' 变量是否仍然存在。这向我表明该变量确实为空。只是为了确定我决定在这里问这个问题。
是,也不是。它确实 "create a new instance",因为静态变量不会在两者之间持久化,而且它不会,因为它实际上不是 OOP 上下文中预期的 "instance" 本身。
static 关键字引用静态变量用于该精确脚本运行。
PHP 将在响应发送后立即忘记所有内容。每次 PHP 收到请求时,都会重新创建环境,两次 运行 之间不会保留任何内容。
然而,为用户使用静态似乎不是一个好主意。这太宽泛了,但您应该查看 dependency injection, and mvc principles.
在开发 PHP 后端时,我决定使用静态变量来保存登录用户。 如果我没记错的话,这只有在每次调用后端都创建该后端的新实例时才有效。否则,当两个调用重叠时,登录用户可能会被覆盖,从而产生错误的结果。
事实证明很难找到答案,因此我尝试编写一个单元测试,只检查当对后端的调用完成时静态 'logged in user' 变量是否仍然存在。这向我表明该变量确实为空。只是为了确定我决定在这里问这个问题。
是,也不是。它确实 "create a new instance",因为静态变量不会在两者之间持久化,而且它不会,因为它实际上不是 OOP 上下文中预期的 "instance" 本身。
static 关键字引用静态变量用于该精确脚本运行。
PHP 将在响应发送后立即忘记所有内容。每次 PHP 收到请求时,都会重新创建环境,两次 运行 之间不会保留任何内容。
然而,为用户使用静态似乎不是一个好主意。这太宽泛了,但您应该查看 dependency injection, and mvc principles.