Confirmez que les variables statiques PHP ne persistent pas dans les requêtes
P粉567281015
P粉567281015 2023-10-30 09:06:47
0
1
765

Je recherche une garantie que les variables statiques ne sont pas stockées entre les requêtes PHP. Voici les questions précédentes :

Variables statiques PHP sur plusieurs pages .php

Les variables statiques en PHP persistent-elles d'une requête à l'autre ?

Variables statiques à travers les sessions

Pour être clair, ce n'est pas le cas, mais il s'agit davantage de fournir un moyen de maintenir l'état que d'une discussion concrète sur le comportement attendu.

Par exemple, si mon code PHP est le suivant :

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

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

Ensuite, chaque fois que je l'exécute, j'obtiens une sortie de 0123456789. Mon intuition/compréhension de PHP me rend assez certain que cela doit être le cas.

Dans mes propres expériences, j'ai arrêté un Apache (pré-forké) dans un processus enfant pour m'assurer que la variable n'était pas mémorisée entre les requêtes. Comme je m'y attendais, il n'est pas mémorisé entre les demandes. Mais ce n’est qu’un scénario dans lequel PHP s’exécute.

Ce que je recherche c'est :

Lien vers la documentation officielle qui indique qu'il s'agit d'un comportement attendu et qu'il ne changera pas. Les parties pertinentes de la documentation PHP ne le mentionnent pas explicitement (sauf dans les commentaires).

Alternativement, lorsque des variables statiques sont mémorisées lors de requêtes (comme un serveur Web ou un framework PHP améliorant les performances), il se peut que les variables statiques ne soient pas effacées pour améliorer la vitesse entre les requêtes.

P粉567281015
P粉567281015

répondre à tous(1)
P粉654894952

PHP ne conserve pas l'état de l'application entre les requêtes. Pendant le cycle de vie de l'application PHP, l'application est réexécutée à chaque requête. Les variables statiques sont conçues pour conserver la valeur de la variable dans la portée de la fonction locale lorsque l'exécution quitte la portée. Nulle part dans la documentation il n'est mentionné que les variables statiques sont destinées à conserver des valeurs à travers les requêtes.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal