确认 PHP 静态变量不会跨请求持续存在
P粉567281015
P粉567281015 2023-10-30 09:06:47
0
1
468

我正在寻找静态变量不存储在 PHP 请求之间的保证。以下是之前的问题:

跨多个 .php 页面的 PHP 静态变量

php 中的静态变量是否在请求中持续存在?

跨会话的静态变量

明确地说它们不是,但它们更多的是提供一种维护状态的方法,而不是对预期行为的具体讨论。

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

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

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

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

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

我正在寻找的是:

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

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

P粉567281015
P粉567281015

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!