Confirmación de que las variables estáticas de PHP no persisten en las solicitudes

Estoy buscando la seguridad de que las variables estáticas NO se almacenen entre las solicitudes de PHP. Las siguientes preguntas anteriores:

Variables estáticas de PHP en múltiples páginas .php

¿Persisten las variables estáticas en php en las solicitudes?

Variables estáticas en todas las sesiones

diga claramente que no lo son, pero están más en el contexto de proporcionar una manera de mantener el estado en lugar de una discusión específica sobre cuál es el comportamiento esperado.

Como ejemplo, si tengo el código PHP de la siguiente manera:

function myfunc() { static $a=0; print $a++; } for ($i=0;$i<10;$i++) myfunc(); 

luego obtengo una salida de 0123456789 cada vez que la ejecuto. Mi instinto / comprensión de PHP me hace bastante seguro de que este debe ser el caso.

En mis propios experimentos, he cerrado un apache (preforking) a un niño para asegurarme de que la variable no se recuerde entre las solicitudes. No se recuerda entre las solicitudes como esperaba. Pero este es solo un escenario en el que se ejecuta PHP.

Lo que estoy buscando es:

Un enlace a una pieza oficial de documentación que dice que este es el comportamiento esperado y no cambiará. La parte relevante de la documentación PHP no menciona esto explícitamente (excepto en los comentarios).

O bien, un ejemplo de cuándo se recuerdan variables estáticas en solicitudes tales como servidores web o marcos PHP que mejoran el rendimiento, lo que potencialmente no borrará las variables estáticas para boost la velocidad entre las solicitudes.

PHP no conserva el estado de la aplicación entre las solicitudes. Durante un ciclo de vida de las aplicaciones PHP, la aplicación se ejecuta con cada solicitud. Las variables estáticas están destinadas a preservar el valor de una variable en un ámbito de función local cuando la ejecución abandona el scope. En ninguna parte de la documentación se menciona que las variables estáticas están destinadas a preservar el valor entre las solicitudes.

Sí, tiene razón, variables estáticas o cualquier variable en PHP, excepto que $ _SESSION solo vive a través de una solicitud. Pero puedes hacerlo usando $ _SESSION;

 class MyClass { public static $a = 0; public static init() { self::$a = isset($_SESSION['a']) ? $_SESSION['a'] : 0; } public static printA() { self::increaseA(); print(self::$a); } public static increaseA() { self::$a++; $_SESSION['a'] = self::$a; } } myClass::init(); for ($i=0;$i<10;$i++) myClass::printA(); 

La particularidad de PHP es que cada solicitud recarga todo el código PHP. Entonces, un método / propiedad estático obtiene su valor predeterminado en cada nueva solicitud.

Una confirmación del hecho de que el “código php completo se recarga en cada solicitud” es que puede encontrar un método persistente como para su acceso a la base de datos, para evitar hacer una nueva conexión con su base de datos para cada solicitud (ver: mysql_pconnect )