深入理解PHP变量的值类型和引用类型_php实例
在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型,在使用的时候,需要注意这一点。
看到网友在讨论PHP的&符号,要彻底理解它的用法,就有必要讨论一下变量的两种形式。
PHP的变量在内存中是这样存储的,变量保存的并不直接是值的内容,而是地址。例如:
$a = 1;
我们看起来,似乎变量$a直接存储了 1 这个值。而实际情况是,PHP解释器创建了变量$a,将值:1 存入内存中的某个地方,再将值的地址存到变量$a中。
需要取值时,先找到变量$a中的地址,再根据地址找到变量的值。
往下看:
echo $a;
会输出1,PHP解释器会这样完成这一样代码:找到$a中存储的地址,根据地址找到存在内存某个地方的值,输出到屏幕。
看似一行简单的代码,流程却是这样的。
再往下看:
$a = 1; $b = &$a;
这里的变量$b 做了一个有趣的操作,&符号取出了$a变量中存储的地址,并存储到$b变量。
那么,如果使用下面代码:
echo $b;
结果也将是输出1,PHP解释器先取出$b中存储的地址,再根据地址找到值。如果我们做下面的操作:
$a = 2; echo $b; //输出2
会发现改变$a的值,$b也跟着变了。其实反过来,改变$b的值,$a的值也会跟这变。
到这一步,我们可以确定,变量$a和$b存储了相同的地址,指向的值是一样的。
那么,我们可以得出结论:它们表示的是同一个变量。
进一步总结,可以得出:如果两个变量存储了相同的地址,它们就是同一个变量。
了解了着一些内容,我们开始介绍值类型和引用类型。
我们先看下面的代码:
$a = 1; $b = $a; $a = 2; echo $b; //输出 1
将$a的值赋给$b,改变$a的值后,$b的值依然不变,也就是说$a和$b是两个不同的变量,指向不同的地址。这种赋值时会创建不同的变量的形式我们称之为值类型。
再看:
class User{ public $name = ‘Tome‘; } $a = new User; $b = $a; $a->name = ‘Jim‘; echo $b->name; //输出 Jim
同样将$a的值赋给$b,改变$a后,$b也跟着变了,也就是说$a和$b是同一个变量,指向相同的地址。这种赋值时不会创建新的变量的形式我们称之为引用类型。

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Les longues URL, souvent encombrées de mots clés et de paramètres de suivi, peuvent dissuader les visiteurs. Un script de raccourcissement d'URL offre une solution, créant des liens concis idéaux pour les médias sociaux et d'autres plateformes. Ces scripts sont utiles pour les sites Web individuels

À la suite de son acquisition de haut niveau par Facebook en 2012, Instagram a adopté deux ensembles d'API pour une utilisation tierce. Ce sont l'API graphique Instagram et l'API d'affichage de base Instagram. En tant que développeur créant une application qui nécessite des informations à partir d'un

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

L'enquête sur le paysage PHP 2025 étudie les tendances actuelles de développement du PHP. Il explore l'utilisation du cadre, les méthodes de déploiement et les défis, visant à fournir des informations aux développeurs et aux entreprises. L'enquête prévoit la croissance de la PHP moderne versio
