Érték hivatkozás

Referencia & operátor alkalmazása érték hivatkozásra.

 

Ez is egy feltételes hívatkozásnak számít.
Alkalmazásához nem kell az if és else utasítás.
Az & karakter beillesztésével létrejön egy értékátadás másik változónak,
valamint az a feltétel, hogyha a másik változó értéke megváltozna,
akkor annak értékét vegye fel automatikusan a & karakter után beírt változó.

 


Az F változó felveszi X változó értékét.
Ha, a továbbiakban az F változó értéke megváltozik, akkor automatikusan az X változó is felveszi az F változó új értékét.

<?php
$x=5;
echo "Az x változó értéke: $x <br />";

$f=&$x;
echo "Az f változó értéke: $f <br />";

$f+=2;
echo "Az f változó értéke: $f <br />";
echo "Az x változó értéke:$x";
?>
Az x változó értéke: 5

Az f változó értéke: 5

Az f változó értéke: 7
Az x változó értéke:7

 


Referencia & operátor alkalmazása tömböknél.

Bemutató példa.
<?php

$elso_tomb = array(4, 8);
echo"1.tömb [0]elem tartalma = "."$elso_tomb[0]"."<br />";
echo"1.tömb [1]elem tartalma = "."$elso_tomb[1]"."<br />";

$masodik_tomb = $elso_tomb;
// A 2.tömb, átveszi az 1.tömb tartalmát.
echo"2.tömb [0]elem tartalma = "."$masodik_tomb[0]"."<br />";
echo"2.tömb [1]elem tartalma = "."$masodik_tomb[1]"."<br />";

$masodik_tomb[] = 5; 
//2.tömb tartalma megváltozott, azaz bővült.
echo"2.tömb [0]elem tartalma = "."$masodik_tomb[0]"."<br />";
echo"2.tömb [1]elem tartalma = "."$masodik_tomb[1]"."<br />";
echo"2.tömb [2]elem tartalma = "."$masodik_tomb[2]"."<br />";

echo"1.tömb nem változott, még mindig array(4, 8)<br />";
print_r($elso_tomb);
echo"<br />";

// 3. és 1.tömb, összekapcsolása referencia operátorral.
// 3.tömb, átveszi az 1.tömb tartalmát.              
$harmadik_tomb = &$elso_tomb;
echo"3.tömb [0]elem tartalma = "."$harmadik_tomb[0]"."<br />";
echo"3.tömb [1]elem tartalma = "."$harmadik_tomb[1]"."<br />";


// 3.tömb tartalmát megváltoztatjuk, referencia operátor
// hatására, 1.tömb tartalma is megváltozik.
$harmadik_tomb[] = 5; echo"3.tömb [0]elem tartalma = "."$harmadik_tomb[0]"."<br />"; echo"3.tömb [1]elem tartalma = "."$harmadik_tomb[1]"."<br />"; echo"3.tömb [2]elem tartalma = "."$harmadik_tomb[2]"."<br />"; echo"1.tömb [0]elem tartalma = "."$elso_tomb[0]"."<br />"; echo"1.tömb [1]elem tartalma = "."$elso_tomb[1]"."<br />"; echo"1.tömb [2]elem tartalma = "."$elso_tomb[2]"."<br />"; ?>
Programunk eredménye:

Első tömb első elemének tartalma = 4
Első tömb második elemének tartalma = 8


A masodik_tomb, átveszi az elso_tomb tartalmát
Második tömb első elemének tartalma = 4
Második tömb második elemének tartalma = 8


Második tömb tartalma megváltozott, azaz bővült.
Második tömb első elemének tartalma = 4
Második tömb második elemének tartalma = 8
Második tömb harmadik elemének tartalma = 5

1.tömb tartalma nem változott, még mindig array(4, 8)
Array ( [0] => 4 [1] => 8 )



3.tömb, és 1.tömb, összekapcsolása referencia operátorral.
A harmadik_tomb, átveszi az elso_tomb tartalmát
Harmadik tömb első elemének tartalma = 4
Harmadik tömb második elemének tartalma = 8



Harmadik tömb tartalmát megváltoztatjuk,
referencia operátor hatására, az első tömb tartalma is megváltozik.

Harmadik tömb első elemének tartalma = 4
Harmadik tömb második elemének tartalma = 8
Harmadik tömb harmadik elemének tartalma = 5

Első tömb első elemének tartalma = 4
Első tömb második elemének tartalma = 8
Első tömb harmadik elemének tartalma = 5