我希望您能确认静态变量不会在 PHP 请求之间存储。以下是之前的问题:
每次运行它,我都会得到0123456789的输出。我的PHP直觉/理解让我相当确定这一点必须是这样的。
在我的实验中,我关闭了一个(preforking)Apache,只留下一个子进程,以确保变量不会在请求之间记住。它没有像我预期的那样在请求之间记住。但这只是PHP运行的其中一种情况。
我正在寻找的是:
1. 一个官方文档链接,说明这是预期行为,不会更改。相关的PHP documentation没有明确提到这一点(除了评论)。 2. 或者,一个例子,说明静态变量会在请求之间被记住,例如Web服务器或性能增强的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直觉/理解让我相当确定这一点必须是这样的。
在我的实验中,我关闭了一个(preforking)Apache,只留下一个子进程,以确保变量不会在请求之间记住。它没有像我预期的那样在请求之间记住。但这只是PHP运行的其中一种情况。
我正在寻找的是:
1. 一个官方文档链接,说明这是预期行为,不会更改。相关的PHP documentation没有明确提到这一点(除了评论)。 2. 或者,一个例子,说明静态变量会在请求之间被记住,例如Web服务器或性能增强的PHP框架,这些框架可能不会清除静态变量以增加请求之间的速度。