Je fonction de recherche avec la variable statique, permet de regarder le code suivant:mémoire statique dans les fonctions [PHP]
(Attention Pour le test, vous devez avoir activé xdebug dans php.ini!)
function a()
{
static $var = 10;
xdebug_debug_zval('var');
return $var;
}
a();
Sortie suivante: var:(refcount=2, is_ref=1),int 10
Que se passe-t-il? Pourquoi est refcount=2
? Où deuxième référence?
P.S Donc, si nous avons var:(refcount=2, is_ref=1),int 10
. Cela signifie que nous ne pouvons pas sauvegarder la référence dans une variable statique.
Pour l'utilisateur Mark Baker
function a()
{
$var = 10;
xdebug_debug_zval('var');
return $var;
}
a();
Sorties: var:(refcount=1, is_ref=0),int 10
Info: Appel d'une fonction ne pas utiliser l'argument variable qui aucun problème avec la sortie d'informations. Par conséquent, compte tenu des arguments utilisés par le nom de la variable écrite dans une chaîne
@MarkBaker Je mis à jour mon post – MaximPro
@MarkBaker C'est faux. 'debug_zval_dump()' prend une entrée par référence. 'xdebug_debug_zval()' cependant y accède directement depuis la table des symboles parents sans manipuler refcount et références. – bwoebi
@bwoebi - Ah! Mon mauvais –