За какво се използва &$променлива

DownFall

Registered
Сравнително често срещам из кодовете &$promenliwa да се използва, вместо $promenliwa. Каква точно е разликата?
 
DownFall каза:
Сравнително често срещам из кодовете &$promenliwa да се използва, вместо $promenliwa. Каква точно е разликата?
Най-краткото обяснение което намерих е: че нещата с &$ се променят в метода , но извън него - не
http://drupal.org/node/249271
 
Когато имаш &, не връщах самата променлива, а адресът и в паметта. Т.е. няма да използваш нова клетка в RAM паметта, а ще се свържеш към инстанцията на предходната.
 
$a = 3;
$b = $a;
$b +=5;
echo $a; // prints 3


$c = 3;
$d = &$c;
$d +=5;
echo $c; // prints 8



В първия случай a = b, но са самостоятелни променливи с различни указатели и следователно промените върху едната не се отразяват на промените върху другата, защото вяка има различен ключ и има заделена отделна стойност в паметта.

Във втория случай е извършена референция по указател. Променливите a и b имат един и същ ключ към една стойност в паметта и следователно промените върху едната ще се отразят на промените върху другата.
 

Back
Горе