Maison  >  Article  >  développement back-end  >  Quelles sont les méthodes pour référencer les variables PHP ? Résumé des méthodes du mécanisme de référence des variables php

Quelles sont les méthodes pour référencer les variables PHP ? Résumé des méthodes du mécanisme de référence des variables php

不言
不言original
2018-08-18 17:55:323237parcourir

Ce que cet article vous apporte, c'est quelles sont les méthodes de référencement des variables PHP ? Ce résumé du mécanisme de référence des variables PHP a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer, j'espère qu'il vous sera utile.

1. Référence de variable, "&" en php :

$a  = "hello world";//定义一个变量,下面赋值给$b
$b = $a;            //这一步实际上原理是会将变量$a复制拷贝一份,也就是内存中重新申请一个地址存储变量$b

Remarque : En PHP, utiliser "=" pour attribuer directement une valeur revient en fait à copier une copie de la variable de droite dans $b, ce qui générera un espace mémoire. Le résultat peut être que le même contenu. existe dans la mémoire partagée deux fois.

2. Utilisez les symboles "&" pour citer

$a  = "hello world";
$b = &$a;

Remarque : lors de l'utilisation de références, le moteur PHP ne copie pas une variable. En fait, il pointe le pointeur vers l'adresse de $a en mémoire, et $b la stocke. aiguille.
Ainsi, lors de l'utilisation de références, modifie la valeur de $b, $a changera également en conséquence.

$a  = "hello world";
$b = &$a;
$b = "test new value";  //把b的值改掉,a的值也会跟着改变
echo $a;                //输出test new value,因为改变了b的值也会改变a的值。

Je vois souvent des situations comme celle-ci lors de la définition de fonctions :

function test (&$param){
    $param++;
}
$k = 8;
test($k);
echo $k; //结果$k的值被函数里面改变了,输出9。

Remarque : Il y a une référence devant $param, donc les paramètres transmis ne feront pas de copier en mémoire, mais référencer directement l'espace mémoire d'origine. Par conséquent : Si la valeur de la variable transmise à l'aide du symbole & est modifiée, la valeur dans l'espace mémoire d'origine sera également modifiée .

3. Lors de la destruction de variables. Cela ne changera pas la valeur d'origine.

$a = 'd';
$b = &$a;
$b = 8;   
var_dump($b,$a);   //因为是引用了,所以把b的值改掉,a的值也跟着改为8了。
unset($b);         //调用unset删除b变量,a变量不会删除
var_dump($b,$a);   //输出null和8

Remarque : lors de l'appel d'unset pour supprimer la variable $b, le moteur php a trouvé dans la table des symboles de variable : I vouloir supprimer La variable $b fait à l'origine référence à la variable $a, qui est difficile à supprimer, car une fois supprimée, la variable $a a disparu, nous copions donc d'abord la variable $a puis supprimons la variable $b.

Recommandations associées :

php utilise open, fwrite pour exporter des fichiers (code) dans plusieurs formats

phpExcel dans la solution au débordement de mémoire lors de l'exportation de fichiers

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:
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