確認 PHP 靜態變數不會跨請求持續存在
P粉567281015
P粉567281015 2023-10-30 09:06:47

我正在尋找靜態變數不儲存在 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學習者快速成長!