加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

确认PHP静态变量不会跨请求持久存在

发布时间:2020-12-13 13:29:32 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找保证静态变量不存储在 PHP请求之间.以下问题: PHP static variables across multiple .php pages Does static variables in php persist across the requests? Static variables across sessions 明确地说它们不是,但它们更多地是在提供维持状态
我正在寻找保证静态变量不存储在 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运行的一种情况.

我正在寻找的是:

指向官方文档的链接,指出这是预期的行为,不会改变. PHP documentation的相关部分没有明确提及(除了评论中).

或者,在诸如Web服务器或性能增强的PHP框架之类的请求中记住静态变量的示例,其中可能不会清除静态变量以提高请求之间的速度.

PHP不保留请求之间的应用程序状态.在程序生命周期中,应用程序将随每个请求一起执行.静态变量用于在执行离开作用域时保留变量在本地函数作用域中的值.文档中没有提到静态变量是为了保持跨请求的价值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读