Les références PHP sont les alias de la table de symboles au moyen desquels le contenu d'une variable peut être consulté sous différents noms. La variable référencée explicitement définie doit être précédée du symbole esperluette (&). La fonctionnalité des références PHP peut être expliquée en utilisant l’analogie du raccourci de Windows. Les références PHP peuvent être définies dans la programmation PHP de différentes manières.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Les méthodes les plus utilisées pour créer des références PHP sont décrites ci-dessous :
Dans la méthode, la référence peut être créée en utilisant le mot-clé « global » avant la variable référencée. Déclarer une référence en tant que variable globale ajoute la variable au tableau $GLOBAL et permet à l'utilisateur d'accéder à une variable globale dans le cadre de la fonction. Fondamentalement, il existe deux manières de définir une référence PHP en la déclarant comme variable globale, par exemple :
function Function_name() { global $globalVar; } OR function Function_name() { $globalVar =& $GLOBALS["globalVar"]; }
Exemple
L'extrait de code ci-dessous est conçu pour démontrer la différence entre la valeur de la même variable par rapport à la portée locale et à la portée globale.
<?php function functionname() { $inputvar = "within function scope"; echo '$inputvar in global scope: ' . $GLOBALS["inputvar"] . "\n"; echo '$inputvar in current scope: ' . $inputvar . "\n"; } $inputvar = "Outside function scope"; $othervar= $GLOBALS["inputvar"]; //Creating inputvar in GLOBAL array functionname(); echo '$othervar : ' . $othervar . "\n"; ?>
Sortie
Othervar est l'ensemble de référence pour la variable d'entrée du tableau GLOBAL. Il n'est pas lié à la variable inputvar définie dans la portée locale de la fonction.
La variable '$this' est la référence par défaut à l'objet de la fonction, dont $this variable est référencée.
Exemple
Le code ci-dessous démontre l'utilisation de $this variable pour accéder à la valeur de n'importe quelle propriété de classe à partir de l'objet de classe choisi.
<?php class Thisclass { var $clsproperty = 300; function classmethod() { $this->clsproperty = 500; // $this is a reference to the object } } $clsObject = new Thisclass(); $clsObject->classmethod(); echo "The displayed value is: ". $clsObject->clsproperty; //display the value updated using $this property ?>
Sortie
La valeur de la propriété cls est affichée en fonction de la valeur définie à l'aide de $this variable.
En programmation PHP, toute opération effectuée sur un objet de classe telle que assigner, retourner ou passer, etc; l'opération est toujours effectuée en référence à l'objet au lieu de sa copie.
La syntaxe standard pour créer une référence d'objet PHP est suivie comme ci-dessous :
class ClassName { //Body of the class } $classObj1 = new ClassName (); $classObj2= $classObj1;
Ici, l'objet classObj2 fait référence au même contenu contenu dans classObj1.
Exemple
L'extrait de code ci-dessous est conçu pour créer un objet de référence pour l'objet réel et accéder à ses propriétés.
<?php class Costume { // Declaring the class properties public $name; public $color; // Declaring the class methods function set_name($name) { $this->name = $name; } function get_name() { return $this->name; } function set_color($color) { $this->color = $color; } function get_color() { return $this->color; } } //Creating the object $constume1 = new Costume(); $constume1->set_name('Superman'); $constume1->set_color('Blue and Red'); //Creating the object reference $constume2=$constume1; echo "Costume1 Name: " . $constume1->get_name(); echo "\n"; echo "Costume1 Color: " . $constume1->get_color(); echo "\n"; echo "\n"; echo "Costume2 Name: " . $constume2->get_name(); echo "\n"; echo "Costume2 Color: " . $constume2->get_color(); ?>
Sortie
L'objet de référence Costume2 fait référence aux mêmes valeurs que celles contenues dans les propriétés nom et couleur de l'objet réel Costume1.
En programmation PHP différentes opérations sont réalisées avec des références PHP. Certaines des opérations majeures sont abordées dans la session ci-dessous :
Afin de permettre à une fonction de modifier une variable définie hors de sa portée, la valeur doit être transmise à la fonction par sa référence.
Exemple
L'extrait de code ci-dessous modifie la valeur de la variable définie hors de la portée de la fonction appelée en utilisant la référence à la variable.
<?php function Afunction(&$input) //passing the input argument by reference { $input*=10; } $outVar=5; echo "Before the function is called: ".$outVar; echo "\n"; Afunction($outVar); echo "After the function is called: ".$outVar; ?>
Sortie
La valeur de la variable outvar est modifiée par la fonction AFunction().
Cette opération permet à la fonction appelante de connaître la variable à laquelle la référence doit être liée. Il est recommandé de l'utiliser uniquement s'il existe des exigences techniques, sinon cela n'ajoute rien aux performances du programme.
Exemple
L'extrait de code ci-dessous est conçu pour transmettre la valeur de retour d'une fonction parent de fonction comme référence à la classe parent de classe définie.
<?php class parentclass { public $parentvar = "I am set at parent class"; public function &parentfunction() { return $this->parentvar; } } $parentobj = new parentclass; $newvar = &$parentobj->parentfunction(); echo $newvar; echo "\n"; $parentobj->parentvar= "I am set outside of the class"; echo $newvar; ?>
Sortie
L'utilisateur peut rompre la liaison entre la variable et la référence en utilisant la méthode unset().
Exemple
L'extrait de code ci-dessous démontre l'utilisation de la méthode unset() pour dissocier la variable référencée firstinput de secondinput.
<?php $firstinput = "I am first input"; $secondinput =& $firstinput; echo "First input: ". $firstinput; echo"\n"; echo "Second input: " . $secondinput; unset($firstinput); echo"\n"; echo"\n"; echo "After unsetting the reference: "; echo"\n"; $firstinput = "I am set to second input"; echo"\n"; echo "First input: ". $firstinput; echo"\n"; echo "Second input: " . $secondinput; ?>
Sortie
Les références PHP sont une fonctionnalité importante incorporée dans les scripts PHP. Les références PHP ne sont pas des pointeurs comme cela peut être décrit pour « C » qui occupent également de la mémoire pour créer un élément en double. Les références PHP sont simplement des alias différents pour faire référence au contenu de la variable réelle. Si la copie d'un objet est requise pour un objet en PHP, cela peut être fait avec le mot-clé « clone ».
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!