Maison  >  Article  >  développement back-end  >  Analyse sous-jacente PHP sur le fractionnement forcé

Analyse sous-jacente PHP sur le fractionnement forcé

藏色散人
藏色散人avant
2020-03-06 16:12:102718parcourir

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer