Table des matières
回复讨论(解决方案)
Maison développement back-end tutoriel php 变量引用计数问题

变量引用计数问题

Jun 23, 2016 pm 01:49 PM
变量 引用

变量引用就让人弄得走火入魔
什么引用、分离、写时复制,写时改变.....
比如:

<?php$a = 1;$b = & $a;xdebug_debug_zval('a');debug_zval_dump($a);/*结果b:(refcount=2, is_ref=1),int 1long(1) refcount(1)*/
Copier après la connexion

refcount测试出来结果不一样,xdebug准还是内置的debug_zval_dump准?


回复讨论(解决方案)

调用 debug_zval_dump($a); 时候形参和$a进行了分离   debug_zval_dump调用可参考下面的情况

$a= 1;

$b= &$a

$c=$a

参考 http://www.laruence.com/2008/09/19/520.html

参考 http://www.laruence.com/2008/09/19/520.html


 正是看了这篇文章才有的问题

两个函数的报告中的 refcount 不是一个意思
请不要被一知半解的文章迷惑了

两个函数的报告中的 refcount 不是一个意思
请不要被一知半解的文章迷惑了



那分别是什么意思呢?

这两个函数不都是用来查看引用计数的吗

这两个函数不都是用来查看引用计数的吗



皆是查看应用计数
debug_zval_dump($a);  请用引用方式debug_zval_dump(&$a); 因为你这种调用和下面情况一样 会发生读写分离 $c 已经和$a分离

$a= 1;
$b= &$a
$c=$a

xdebug_debug_zval是真是的引用计数   而debug_zval_dump因为给它传参 所以是引用计数+1




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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Un guide d'utilisation des variables d'environnement Windows 11 et 10 pour le profilage Un guide d'utilisation des variables d'environnement Windows 11 et 10 pour le profilage Nov 01, 2023 pm 08:13 PM

Les variables d'environnement sont le chemin d'accès à l'emplacement (ou à l'environnement) où les applications et les programmes s'exécutent. Ils peuvent être créés, édités, gérés ou supprimés par l'utilisateur et s'avèrent utiles lors de la gestion du comportement de certains processus. Voici comment créer un fichier de configuration pour gérer plusieurs variables simultanément sans avoir à les modifier individuellement sous Windows. Comment utiliser les profils dans les variables d'environnement Windows 11 et 10 Sous Windows, il existe deux ensembles de variables d'environnement : les variables utilisateur (s'appliquent à l'utilisateur actuel) et les variables système (s'appliquent globalement). Cependant, en utilisant un outil comme PowerToys, vous pouvez créer un fichier de configuration distinct pour ajouter des variables nouvelles et existantes et les gérer toutes en même temps. Voici comment procéder : Étape 1 : Installer PowerToysPowerTo

Comment utiliser les guillemets dans Apple Notes Comment utiliser les guillemets dans Apple Notes Oct 12, 2023 pm 11:49 PM

Dans iOS 17 et macOS Sonoma, Apple a ajouté de nouvelles options de formatage pour Apple Notes, notamment des guillemets et un nouveau style Monostyle. Voici comment les utiliser. Avec des options de formatage supplémentaires dans Apple Notes, vous pouvez désormais ajouter des guillemets à vos notes. Le format de citation en bloc facilite le décalage visuel des sections d'écriture à l'aide de la barre de citation à gauche du texte. Appuyez/cliquez simplement sur le bouton de format « Aa » et sélectionnez l'option de citation en bloc avant de taper ou lorsque vous êtes sur la ligne que vous souhaitez convertir en citation en bloc. Cette option s'applique à tous les types de texte, options de style et listes, y compris les listes de contrôle. Dans le même menu Format, vous pouvez trouver la nouvelle option Style unique. Il s'agit d'une révision du précédent modèle "à largeur égale".

Erreur de compilation C++ : référence non définie, comment la résoudre ? Erreur de compilation C++ : référence non définie, comment la résoudre ? Aug 21, 2023 pm 08:52 PM

C++ est un langage de programmation populaire, mais lors de son utilisation, l'erreur de compilation « référence non définie » se produit souvent, ce qui pose beaucoup de problèmes au développement du programme. Cet article abordera la solution à l’erreur « référence non définie » à la fois en termes de cause et de solution. 1. Cause de l'erreur Lorsque le compilateur C++ compile un fichier source, celui-ci sera divisé en deux étapes : l'étape de compilation et l'étape de liaison. La phase de compilation convertit le code source des fichiers sources en code assembleur, tandis que la phase de liaison combine différents fichiers sources en un fichier exécutable.

Mode strict pour les variables en PHP7 : comment réduire les bugs potentiels ? Mode strict pour les variables en PHP7 : comment réduire les bugs potentiels ? Oct 19, 2023 am 10:01 AM

Le mode strict a été introduit dans PHP7, ce qui peut aider les développeurs à réduire les erreurs potentielles. Cet article expliquera ce qu'est le mode strict et comment utiliser le mode strict en PHP7 pour réduire les erreurs. Parallèlement, l'application du mode strict sera démontrée à travers des exemples de code. 1. Qu’est-ce que le mode strict ? Le mode strict est une fonctionnalité de PHP7 qui peut aider les développeurs à écrire du code plus standardisé et à réduire certaines erreurs courantes. En mode strict, il y aura des restrictions et une détection strictes sur la déclaration des variables, la vérification du type, l'appel de fonction, etc. Passer

Que sont les variables d'instance en Java Que sont les variables d'instance en Java Feb 19, 2024 pm 07:55 PM

Les variables d'instance en Java font référence aux variables définies dans la classe, et non dans la méthode ou le constructeur. Les variables d'instance sont également appelées variables membres. Chaque instance d'une classe possède sa propre copie de la variable d'instance. Les variables d'instance sont initialisées lors de la création de l'objet et leur état est enregistré et conservé tout au long de la durée de vie de l'objet. Les définitions de variables d'instance sont généralement placées en haut de la classe et peuvent être déclarées avec n'importe quel modificateur d'accès, qui peut être public, privé, protégé ou le modificateur d'accès par défaut. Cela dépend de ce que nous voulons que ce soit

Carte mentale de la syntaxe Python : compréhension approfondie de la structure du code Carte mentale de la syntaxe Python : compréhension approfondie de la structure du code Feb 21, 2024 am 09:00 AM

Python est largement utilisé dans un large éventail de domaines grâce à sa syntaxe simple et facile à lire. Il est crucial de maîtriser la structure de base de la syntaxe Python, à la fois pour améliorer l’efficacité de la programmation et pour acquérir une compréhension approfondie du fonctionnement du code. À cette fin, cet article fournit une carte mentale complète détaillant divers aspects de la syntaxe Python. Variables et types de données Les variables sont des conteneurs utilisés pour stocker des données en Python. La carte mentale affiche les types de données Python courants, notamment les entiers, les nombres à virgule flottante, les chaînes, les valeurs booléennes et les listes. Chaque type de données a ses propres caractéristiques et méthodes de fonctionnement. Opérateurs Les opérateurs sont utilisés pour effectuer diverses opérations sur les types de données. La carte mentale couvre les différents types d'opérateurs en Python, tels que les opérateurs arithmétiques, ratio

Quels sont les avantages des fonctions C++ renvoyant des types référence ? Quels sont les avantages des fonctions C++ renvoyant des types référence ? Apr 20, 2024 pm 09:12 PM

Les avantages des fonctions renvoyant des types référence en C++ incluent : Améliorations des performances : le passage par référence évite la copie d'objets, économisant ainsi de la mémoire et du temps. Modification directe : L'appelant peut modifier directement l'objet de référence renvoyé sans le réaffecter. Simplicité du code : le passage par référence simplifie le code et ne nécessite aucune opération d'affectation supplémentaire.

Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Mar 09, 2024 pm 05:36 PM

L'utilisation d'Ajax pour obtenir des variables à partir de méthodes PHP est un scénario courant dans le développement Web. Grâce à Ajax, la page peut être obtenue dynamiquement sans actualiser les données. Dans cet article, nous présenterons comment utiliser Ajax pour obtenir des variables à partir de méthodes PHP et fournirons des exemples de code spécifiques. Tout d’abord, nous devons écrire un fichier PHP pour gérer la requête Ajax et renvoyer les variables requises. Voici un exemple de code pour un simple fichier PHP getData.php :

See all articles