Maison > développement back-end > tutoriel php > Introduction d'un exemple de mécanisme de récupération de place PHP

Introduction d'un exemple de mécanisme de récupération de place PHP

Libérer: 2023-04-08 13:32:01
avant
3412 Les gens l'ont consulté

Introduction d'un exemple de mécanisme de récupération de place PHP

<?php
$a = "new string";
?>
Copier après la connexion

Dans l'exemple ci-dessus, la nouvelle variable a est générée dans la portée actuelle. Et un conteneur de variables de type chaîne et de valeur nouvelle chaîne est généré. Dans les deux octets d'informations supplémentaires, « is_ref » est défini sur FALSE par défaut car aucune référence personnalisée n'est générée.

"refcount" est défini sur 1 car il n'y a qu'une seule variable utilisant ce conteneur de variables. Notez que lorsque la valeur de "refcount" est 1, la valeur de "is_ref" est toujours FALSE si vous avez installé. Avec » Xdebug, vous pouvez afficher les valeurs de « refcount » et « is_ref » en appelant la fonction xdebug_debug_zval().

Exemple n°2 Afficher les informations zval

<?php
xdebug_debug_zval(&#39;a&#39;);
?>
Copier après la connexion

La routine ci-dessus affichera :

a: (refcount=1, is_ref=0)=&#39;new string&#39;
Copier après la connexion

L'attribution d'une variable à une autre variable augmentera le nombre de références (refcount).

Exemple n°3 Augmenter le nombre de références d'un zval

<?php
$a = "new string";
$b = $a;
xdebug_debug_zval( &#39;a&#39; );
?>
Copier après la connexion

La routine ci-dessus affichera :

a: (refcount=2, is_ref=0)=&#39;new string&#39;
Copier après la connexion

À ce moment, le nombre de références est de 2, car le même conteneur de variables est utilisé par l'association des variables a et variable b. PHP ne copiera pas le conteneur de variables généré lorsque cela n'est pas nécessaire.

Le conteneur de variables est détruit lorsque "refcount" devient 0. Lorsqu'une variable associée à un conteneur de variables quitte sa portée (par exemple : l'exécution de la fonction se termine), ou que la fonction non définie est appelée sur la variable () , "refcount" sera réduit de 1, comme le montre l'exemple suivant :

Exemple n°4 Diminuer le nombre de références

<?php
$a = "new string";
$c = $b = $a;
xdebug_debug_zval( &#39;a&#39; );
unset( $b, $c );
xdebug_debug_zval( &#39;a&#39; );
?>
Copier après la connexion

La routine ci-dessus affichera :

a: (refcount=3, is_ref=0)='new string'
a: (refcount=1, is_ref=0)=&#39;new string&#39;
Copier après la connexion

If nous exécutons maintenant unset($a);, ce conteneur de variables contenant le type et la valeur sera supprimé de la mémoire.

Recommandations associées :

Tutoriel vidéo PHP : //m.sbmmt.com/course/list/29/type/2.html

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:oschina.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal