Maison > développement back-end > tutoriel php > Explication du passage par valeur et référence en php

Explication du passage par valeur et référence en php

小云云
Libérer: 2023-03-22 15:38:01
original
1320 Les gens l'ont consulté

Cet article partage principalement avec vous l'explication du transfert de valeur et de la référence en PHP. Il est principalement partagé avec vous sous forme de texte. J'espère qu'il pourra aider tout le monde.

Introduction :

Chaque variable php existe dans un conteneur de variables appelé "zval". Un conteneur de variable zval, en plus de contenir le type et la valeur de la variable, comprend également 两个字节 informations supplémentaires. Le premier est "is_ref", qui est un bool值, utilisé pour identifier si cette variable appartient à 引用集合 (jeu de références). Grâce à cet octet, le moteur PHP peut distinguer les variables ordinaires des variables de référence. Puisque PHP permet aux utilisateurs d'utiliser des références personnalisées en utilisant &, il existe également un 内部引用计数机制 dans le conteneur de variables zval pour optimiser l'utilisation de la mémoire. Le deuxième octet est "refcount", qui est utilisé pour représenter le nombre de variables (également appelées symboles) dans le conteneur de variables zval 指向. Lorsque la valeur de "refcount" est 1, la valeur de "is_ref" est toujours FALSE.

Exemple :

<?php$a = 10;
//将常量值赋给变量,会为a分配内存空间$b = $a;
//变量赋值给变量,给b分配了内存空间,并将a变量的类型和值复制一份存储到b的存储空间 $c = &$a;
//引用是不会为c分配空间的,c和a是共用一份内存空间数据。
Copier après la connexion

PHP sera a Lorsqu'une variable est affectée à une nouvelle variable, la nouvelle variable ne se verra pas immédiatement attribuer d'espace mémoire, mais une référence à l'espace mémoire sera ajoutée. Lorsque des modifications sont apportées à la variable d'origine ou à la nouvelle variable, un espace mémoire sera alloué à la nouvelle variable.

Recommandations associées :

Quelle est la différence entre le passage de valeur ordinaire et le passage de valeur de référence dans les fonctions PHP

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:
source:php.cn
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