Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Tworzenie referencji do tablic, jak to działa?
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Z Podręcznika PHP:
Cytat
W PHP referencje są środkiem dostępu do tej samej wartości zmiennej poprzez różne nazwy. (...) Zwróć uwagę na to, że w PHP nazwa zmiennej oraz wartość zmiennej są dwiema różnymi rzeczami, wobec tego ta sama wartość może być dostępna poprzez różne nazwy. Najbliższą analogią jest Uniksowy system plików i ich nazw - nazwy zmiennych to wpisy katalogowe, a wartości to same pliki. (...)

$a oraz $b są całkowicie równe, czyli nie $a wskazuje na $b lub odwrotnie, lecz $a oraz $b wskazują na to samo miejsce.

Co zaś z tworzeniem referencji do tablic?
Kod
$a = array('klucz'=>1, 'klucz2'=>2, itd.); //Tablica z wieloma kluczami
$b = &$a;

Jeśli referencje wskazują tylko samą wartość zmiennej, czy PHP tworzy w $b dowiązania do wartości wszystkich kluczy występujących w $a, co może być czasochłonne?


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
heaven
post
Post #2





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

Ostrzeżenie: (0%)
-----


Jak dla mnie nie beda tworzone wiazania do wszystkich kluczy tylko do tej poprzedniej nazwy
Prawdopodomnie PHP tworzac tablice (czy inny typ) zapisuje ja sobie w jakims bloku pamieci i od razu wskazuje ze wszystkie odwolania do $a maja przekierowywane do tego bloku wiec stworzenie $b = &$a to tylko powiedzenie ze w przyszlosci odwolanie do zmiennej $b ma byc do tego samego bloku pamieci co $a. samo odczytywanie kluczy to juz inna sprawa i tak samo bedzie wygladac dostajac sie przez $a co i przez $b
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 05:30