gpt4 book ai didi

php - 确认 PHP 静态变量不会跨请求持续存在

转载 作者:可可西里 更新时间:2023-10-31 23:10:14 25 4
gpt4 key购买 nike

我希望确保静态变量不会在 PHP 请求之间存储。以下是之前的问题:

PHP static variables across multiple .php pages

Does static variables in php persist across the requests?

Static variables across sessions

明确表示它们不是,但它们更多地是在提供一种维护状态的方法的上下文中,而不是具体讨论什么是预期行为。

举个例子,如果我有如下PHP代码:

function myfunc()
{
static $a=0;
print $a++;
}

for ($i=0;$i<10;$i++) myfunc();

然后我每次运行它时都会得到 0123456789 的输出。我对 PHP 的直觉/理解使我相当确定情况一定如此。

在我自己的实验中,我已经将(预 fork 的)apache 关闭给一个 child ,以确保在请求之间不会记住该变量。正如我所期望的那样,它不会在请求之间被记住。但这只是 PHP 运行的一种场景。

我要找的是:

指向官方文档的链接,该文档表明这是预期的行为并且不会更改。 PHP documentation 的相关部分没有明确提及这一点(评论中除外)。

或者,当跨请求记住静态变量时的示例,例如网络服务器或性能增强的 PHP 框架可能不会清除静态变量以提高请求之间的速度。

最佳答案

PHP 不保留请求之间的应用程序状态。在 PHP 应用程序生命周期中,应用程序会根据每个请求重新执行。静态变量旨在在执行离开作用域时在局部函数作用域中保留变量的值。文档中没有任何地方提到静态变量旨在跨请求保留值。

关于php - 确认 PHP 静态变量不会跨请求持续存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6062150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com