![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 9.04.2004 Skąd: Zawoja Ostrzeżenie: (0%) ![]() ![]() |
Witajcie, od czasu do czasu przeglądam forum i często spotykam się z referencją w klasach, czego totalnie nie rozumiem.
Referencja, jest to powiązanie jakieś między zmiennymi, więc jeśli w jednej zmiennej zmieni się coś, to w drugiej następuje taka sama zmiana. Dobrze to rozumiem? Chciałem zaczaić, jak działa framework jakikolwiek, ale wszędzie spotykam się z referencją. Jednym z takich frameworkuf jest np. Mojavi. Przykładem referencji jest np. ten z postu: http://forum.php.pl/viewtopic.php?p=101720#101720 Możecie mi wytłumaczyć na czym to wszystko polega, jak ma się referencja na zwyczajnych zmiennych do tych na klasach i właściwie to po co to wszystko ? Zanim odpowiecie na pytanie, możecie się zacząć denerwować, pytając: dlaczego do cholery nie poszukasz o tym na forum czy w artykułach? Odpowiedź: szukałem, i szukam od jakiegoś tygodnia i jak narazie żadnych rezulatów. Angielskiego nie znam za dobrze, a w polskich manualach nie znalazłem tego. Liczę, że potraficie mnie zrozumieć, a przede wszystkim na to, że mi to wytłumaczycie. Jestem przekonany, że nie jeden sobie zadaje to samo pytanie, więc już przynajmniej będziecie mogli go odsyłać do tego tematu. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 2.01.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Krótko.
W momencie gdy wykonasz taki kod: [php:1:0ef355d348] <?php $zmienna_a='ania'; $zmienna_b=$zmienna_a; $zmienna_b='dorotka'; echo "zmienna a: $zmienna_a <br>"; echo "zmienna b: $zmienna_b <br>"; ?> [/php:1:0ef355d348] Otrzymasz taki wynik: Kod zmienna a: ania
zmienna b: dorotka Teraz drugi, bardzo podobny przykład: [php:1:0ef355d348] <?php $zmienna_a='ania'; $zmienna_b=&$zmienna_a; $zmienna_b='dorotka'; echo "zmienna a: $zmienna_a <br>"; echo "zmienna b: $zmienna_b <br>"; ?> [/php:1:0ef355d348] I wynik: Kod zmienna a: dorotka
zmienna b: dorotka W momencie gdy użyjesz operatora przypisania "=" to wartość zmiennej znajdującej się po prawej stronie (w naszym przypadku to $zmienna_a i jej wartosc 'ania') jest przypisywana do nowej zmiennej o nazwie użytej po lewej stronie (w tym przypadku $zmienna_b). Czyli po takiej operacji mamy dwie fizyczne kopie tej samej wartości pod postacią dwóch różnych zmiennych ($zmienna_a i $zmienna_b). Jeśli teraz zmienisz wartość którejkolwiek ze zmiennych, nie będzie to miało wpływu na wartośc tej drugiej. Natomiast w przypadku referencji "&=" zmienna użyta z lewej strony operatora przypisania staje się tak jakby "drogowskazem", wskazującym na wartośc zmiennej użytej z prawej strony. Po takiej operacji $zmienna_a pozostaje niezmieniona a $zmienna_b jest "referencją do zmiennej_a". Teraz jeśli spróbujesz zmienić wartośc $zmienna_b to tak naprawdę zmienisz wartość $zmienna_a. Spójrz na powyższe przykłady, "przetraw" to co napisałem i zrozum... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 05:44 |