Analyse sous-jacente PHP sur le fractionnement forcé

藏色散人
Libérer: 2023-04-08 12:56:01
avant
2734 Les gens l'ont consulté

Apprendre nécessite de savoir ce que c'est et pourquoi c'est, et les connaissances sous-jacentes liées à PHP sont ce type de connaissances.

Recommandé : "Formation PHP"

Aujourd'hui, nous parlerons du fractionnement forcé. En termes simples, le fractionnement forcé signifie "avant qu'une valeur ne soit activement attribuée à la variable de référence, la". Si une variable se voit attribuer une valeur, un fractionnement forcé se produira. "

C'est un peu déroutant à dire, jetons un coup d'œil à l'analyse du code.

Regardez le code suivant :

Analyse sous-jacente PHP sur le fractionnement forcé

Si vous êtes un peu familier avec PHP : & les symboles de référence, vous devriez pouvoir voir que le résultat est gzchen , huit heures trente du soir, gzchen .

Jetons ensuite un coup d'œil au processus d'exécution sous-jacent du code ci-dessus.

Comme nous le savons tous, une variable est une structure, qui ressemble à ceci :

Analyse sous-jacente PHP sur le fractionnement forcé

Chaque ligne est commentée, ce fichier est dans zend.h dans Répertoire Zend du code source PHP.

Lorsque le code s'exécute jusqu'à la ligne : 3 [$name = '8:30 in the soir'], la structure dans la mémoire ressemble à ceci :

Analyse sous-jacente PHP sur le fractionnement forcé

Lorsque le code passe à la ligne : 4[name], la structure devient comme ceci :

Analyse sous-jacente PHP sur le fractionnement forcé

passe à la ligne : 5[<span style="font-size: 14px; line-height: 1.76em;">Misplaced &</span>name] et ligne :[$nameCopy = 'gzchen'], comme ceci :

Analyse sous-jacente PHP sur le fractionnement forcé

Ici, ici, c'est ici qu'une scission forcée se produit.

Lorsque is_ref__gc[attribut de référence] passe de 0->1, si refcont_gc>1, alors une division forcée se produira. Le pseudo code est :

Analyse sous-jacente PHP sur le fractionnement forcé

Il s'agit d'un fractionnement forcé. Les variables qui ont été affectées par valeur sont référencées et réaffectées. La variable affectée par valeur sera divisée en structure, dans ce cas $myName.

Ce principe n'est fondamentalement pas utilisé dans le développement réel, mais le fractionnement forcé est généralement testé avec la copie sur écriture(vache) lors d'entretiens.

Pour plus de contenu lié à la programmation, veuillez faire attention à la colonne Introduction à la programmation sur le site Web PHP chinois !

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:segmentfault.com
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