Comment vérifier l'emplacement de la mémoire de variable en php?
Comment vérifier l'emplacement de la mémoire de variable en php?
Grâce
oui j'ai besoin, par exemple si je veux savoir si la variable est la copie d'une autre variable ou un pointeur vers la même variable
Votre conception est rompu lorsque vous avez besoin que.
liées à la si pas de duplication de Détecter si une variable est une référence
pour être juste, il pourrait être à l'aide de PHP dans un environnement où il doit connaître les adresses de la mémoire de ses données. il n'a probablement pas la conception du système...
Votre conception est rompu lorsque vous avez besoin que.
liées à la si pas de duplication de Détecter si une variable est une référence
pour être juste, il pourrait être à l'aide de PHP dans un environnement où il doit connaître les adresses de la mémoire de ses données. il n'a probablement pas la conception du système...
OriginalL'auteur Yosef | 2011-03-01
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin de savoir si $varA est une référence à $varB, alors vous êtes hors de la chance: le PHP entrailles ne présentent pas cette information pour le développeur.
Cependant, vous pouvez extraire des informations à propos des références par l'analyse de la sortie de var_dump ou debug_zval_dump(). Lire les sections du guide, et de voir cette question pour certains détails.
Et un prêt de ce (PDF) de l'article par Derick Rethans sur des références en PHP.
Regarder dehors pour le refcount lors de l'utilisation de debug_zval_dump() parce que la fonction crée toujours une référence supplémentaire à l'intérieur de lui-même, l'incrémentation de la valeur par 1
OriginalL'auteur Mark Baker
Si vous avez besoin de savoir si une variable est une référence à l'autre, alors debug_zval_dump() est la seule option.
debug_zval_dump()
. Très intéressant, merci!OriginalL'auteur mario
Désolé, mais ce n'est pas possible [1]
[1] http://php.net/manual/en/language.references.php
OriginalL'auteur Felipe Cardoso Martins
Pour tester si une variable est une référence à l'autre, vous pouvez effectuer les opérations suivantes:
OriginalL'auteur infinity
Je suis assez certain que ce n'est pas possible en PHP. Vous pourriez être en mesure de créer une extension pour ce faire, mais je ne vois pas l'utilité. Les adresses mémoire sont inutiles à l'intérieur de scripts PHP depuis l'interprète gère l'ensemble de la variable interne des œuvres. En dehors de PHP (dire la manipulation d'une adresse de mémoire avec le C ou le C++) serait dangereux pour dire le moins. Je m'attends à ce que vous pouvez tomber en panne un script et, éventuellement, votre interprète si vous avez modifié une adresse de mémoire utilisée par un script en PHP alors qu'il était en cours d'exécution.
Si vous êtes à la recherche pour les pointeurs internes en PHP, cependant, prendre un coup d'oeil dans références. Il pourrait prendre un peu de lectures pour envelopper votre tête autour d'eux, mais si vous avez besoin de passer par référence, les examiner. Exemple rapide:
OriginalL'auteur Bailey Parker
Comme d'autres l'ont dit, l'API n'expose pas un moyen de récupérer une valeur d'adresse. Cependant, vous pouvez comparer les adresses de deux valeurs de deux variables. Voici une fonction qui teste si deux variables font référence à la même valeur:
(C'est le même que @l'infini de la réponse, mais peut-être plus compréhensible.)
OriginalL'auteur jameshfisher