Exemple de code de méthode renvoyant le type de référence en php

怪我咯
Libérer: 2023-03-13 22:36:01
original
1253 Les gens l'ont consulté

Les références de PHP (c'est-à-dire ajouter une esperluette devant les variables, fonctions, objets, etc.) //Le plus important est de supprimer les variables référencées par , mais les variables référencées ne sont pas accessibles. Mais le contenu n'est pas détruit. La signification de référence en PHP est : différents noms accèdent au même contenu de variable

Cet article présente principalement la méthode de retour de la référence . tapez PHP,

<?php
 
$color = &#39;YellowGreen&#39;;
 
function &getRef() {
    global $color;
    return $color;
}
 
function getCopy() {
    global $color;
    return $color;
}
 
$colorRef = &getRef();
$colorRef = &#39;Blue&#39;;
 
//$colorCopy = getCopy();
//$colorCopy = &#39;Black&#39;;
 
 
var_dump($color);
var_dump($colorRef);
//var_dump($colorCopy);
Copier après la connexion

Exécutez une fois le code ci-dessus et vous comprendrez presque que l'utilisation de &getRef() liera $colorRef à $color, c'est-à-dire que $colorRef et $color sont deux variables Il pointe vers la même valeur. Lorsque vous modifiez l’une des valeurs, l’autre changera également.

Si $color est un tableau, il en va de même. Le code ci-dessus se comporte de la même manière comportement dans n'importe quelle version de PHP4/5.

Le problème se pose lorsque $color est un Objet.

En PHP4, getCopy renverra toujours un objet copié ; &getRef() renvoie une référence.

PHP5 est un peu différent.
Le dernier PHP5.2 se comporte de la même manière que PHP4, getCopy() renvoie une copie et &getRef() renvoie une référence.
Mais certaines versions de PHP5 sont légèrement différentes, comme PHP5.1.6, ce qui montre que getCopy() et &getRef() sont toutes deux des références.

Ici getCopy() et &getRef() sont deux fonctions globales Si elles sont placées dans une classe et deviennent des fonctions membres de la classe, ce sera une autre histoire...

PS : Le retour des références n'améliorera pas les performances, mais parfois cela réduira les performances, alors ne tenez pas pour acquis d'utiliser cette fonctionnalité pour « optimiser » le programme.

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