Maison  >  Article  >  développement back-end  >  Quelle est la différence entre l’affectation par valeur et l’affectation par référence en PHP ?

Quelle est la différence entre l’affectation par valeur et l’affectation par référence en PHP ?

伊谢尔伦
伊谢尔伦original
2017-07-17 16:41:562053parcourir

Affectation par valeur  : Lors de l'attribution de la valeur d'une expression à une variable, la valeur de l'expression d'origine entière est affectée à la variable cible. Cela signifie que, par exemple, modifier la valeur d'une variable alors que la valeur d'une variable est affectée à une autre variable n'affectera pas l'autre variable.

<?php 
$a=123; $a=123; 
$b=$a; $b=&$a; 
$a=321; $a=321; 
Echo”$a,$b”;//显示”321,123” Echo”$a,$b”;//显示”321,321” 
?>

Affectation de référence : La nouvelle variable fait simplement référence à la variable d'origine. La modification de la nouvelle variable affectera la variable d'origine. En utilisant l'affectation de référence, ajoutez simplement un symbole & à la variable à attribuer. Avant (variable source)
Type Trick PHP ne nécessite pas (ou ne prend pas en charge) de définitions de type explicites dans les définitions de variable ; le type de variable est déterminé en fonction du contexte dans lequel la variable est utilisée. Autrement dit, si vous attribuez une valeur de chaîne à la variable var, var devient une chaîne. Si vous attribuez une valeur entière à var, elle devient un entier.
Type cast
Les conversions autorisées sont : (int), (integer) - converti en entier (bool), (boolean) - converti en booléen (float), (double), (real) - Converti en flottant type de point (chaîne) - Convertir en chaîne (tableau) - Convertir en tableau (objet) - Convertir en objet Settype() pour la conversion de type
Fonction Settype()

<?php 
$foo = "5bar"; // string 
$bar = true; // boolean 
settype($foo, "integer"); // $foo 现在是 5 (integer) 
settype($bar, "string"); // $bar 现在是 "1" (string) 
?>

Portée variable La portée d'une variable est le contexte dans lequel elle est définie (c'est-à-dire sa portée effective). La plupart des variables PHP n'ont qu'une seule portée. Cette portée unique inclut également les fichiers introduits par include et require.
Variable statique Une autre caractéristique importante de la portée des variables est la variable statique. Les variables statiques n'existent que dans la portée de la fonction locale, mais leurs valeurs ne sont pas perdues lorsque l'exécution du programme quitte cette portée.
Array Un tableau en PHP est en fait un graphe ordonné. Un graphique est un type qui mappe des valeurs à des clés. Ce type est optimisé de plusieurs manières, il peut donc être utilisé comme un véritable tableau, ou une liste (vecteur), une table de hachage (une implémentation d'un graphique), un dictionnaire, un ensemble, une pile, une file d'attente et bien d'autres. plus de possibilités. Puisque vous pouvez utiliser un autre tableau PHP comme valeur, vous pouvez également simuler facilement un arbre.
Define array() Vous pouvez utiliser la structure du langage array() pour créer un nouveau tableau. Il accepte un certain nombre de paires de paramètres clé => valeur séparées par des virgules.
array( key => value , ... )
// la clé peut être un entier ou une chaîne
// la valeur peut être n'importe quelle valeur

<?php // 现在删除其中的所有单元,但保持数组本身的结构 
// 创建一个简单的数组 foreach ($array as $i => $value) { 
$array = array(1, 2, 3, 4, 5); unset($array[$i]); 
print_r($array); } 
print_r($array); 
// 添加一个单元(注意新的键名是 5,而不是你可能以为的 0) 
$array[] = 6; 
print_r($array); // 重新索引: 
$array = array_values($array); 
$array[] = 7; 
print_r($array); 
?>

la fonction unset() permet Supprimer une clé d'un tableau. Sachez que le tableau ne sera pas réindexé.

<?PHP 
$a = array( 1 => &#39;one&#39;, 2 => &#39;two&#39;, 3 => &#39;three&#39; ); 
unset( $a[2] ); 
/* 将产生一个数组,定义为 
$a = array( 1=>&#39;one&#39;, 3=>&#39;three&#39;); 
而不是 
$a = array( 1 => &#39;one&#39;, 2 => &#39;three&#39;); 
*/ 
$b = array_values($a); 
// Now $b is array(0 => &#39;one&#39;, 1 =>&#39;three&#39;) 
?>

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