Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: refernencje zmiennych
Forum PHP.pl > Forum > PHP
johno
Mam pytanko nat. teoretycznej.
Wezmy np:
Kod
$a=3;

$b=4;

obie zmienne maja zarezerwowane inne miejsca w pamieci.
Kod
$a=&$b;

Takie cos przenosi wektor $a do komorki pamieci $b.
Czy komorka pamieci, w ktorej byla zapisana wartosc $a zostaje oprozniona?questionmark.gif
Sir Blade
w $a jest wartosc $b
castor
Cytat
w $a jest wartosc $b

ale zes palnal laugh.gif

Cytat
Takie cos przenosi wektor $a do komorki pamieci $b.
Czy komorka pamieci, w ktorej byla zapisana wartosc $a zostaje oprozniona?questionmark.gif


nie!
tak jak napisales referencja z $b zostanie przeniesiona na $a a zawartosc komorki pamieci referenciowanej przez $a bedzie istaniala w pamieci do momentu ukonczenia skryptu :wink:

a moge zapytac dlaczego pytasz? to dla piszacego w php jest raczej nie istotne:)
Sir Blade
jezeli wpisze

Kod
echo"$a";


wyswietli zawartosc $b

dlaczego??
johno
Tak z czystej ciekawosci laugh.gif
Po prostu czytalem ksiazke o php i zobaczylem referencje. Zeby zrozumiec to sobie rozrysowalem i zobaczylem, ze sie takie cosik dzieje :wink:
Ja juz tak mam, ze jak mnie jakies pytanko glebi, to musze na nie znalesc odpowiedz.

PS: A czy jest jakis sposob na oproznienie takiej komorki pamieci?
castor
z zewnatrz dla programisty tak to wyglada :wink:

lecz to nie w $a jest wartosc $b tylko $a wskazuje na $b
..oczywiscie po takiej operacji jaka on podal :wink:

...ale zapomnij .....to jest nie wazne biggrin.gif
Sir Blade
widze, ze komus brakowalo paru stron do skonczenia ksiazki i cos takiego wymyslil

biggrin.gif
johno
hehe
castor
Cytat
PS: A czy jest jakis sposob na oproznienie takiej komorki pamieci?


mozesz uzyc unset($a); lecz to wlasciwie tez nie wyczysci pamieci tylko odetnie referncje.tylko ze jesli pamiec osiagnie limit to "GarbageColector"(nie wiem jak to zwal w C++)
usunie zawartosc z pamieci ktore nie sa referencjowane.

jak juz wspomnialem po skonczeniu skryptu pamiec zostanie oprozniona wie cnie powinienes se tym glowy zawracac:)

referencji najczesciej uzywa sie w funkcjach ktore maja pracowac nie na kopi tylko na orginalnym objekcie np:

Kod
<?

function myB(&$txt){

$txt='<b>'.$txt.'</b>';

}



$test="to jest lancuch znakow.. hehee";

echo $test."<br>n";



myB($test);



echo $test;



?>
castor
Cytat
widze, ze komus brakowalo paru stron do skonczenia ksiazki i cos takiego wymyslil
biggrin.gif


:?: do czego to przypiac :?:
kryr
Cytat
"GarbageColector"(nie wiem jak to zwal w C++)  

dokladnie tak :wink:
castor
Cytat
Cytat

"GarbageColector"(nie wiem jak to zwal w C++)  

dokladnie tak :wink:


to tak jak w JAVIE :wink:
kryr
To tak jak we wszystkich pozadniejszych jezykach... (twierdzenie to nie odnosi sie do assemblera smile.gif )
johno
Cytat
(twierdzenie to nie odnosi sie do assemblera smile.gif )

plizzzzzz... tylko nie ASSEMBLER!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 8O 8O 8O 8O


:wink:
kryr
a co w nim zlego?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.