Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Klasy - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: Klasy (/thread-klasy)

Strony: 1 2 3


RE: Klasy - Pedro84 - 29-09-2012

Kod:
$obiekt = new Klasa();
$obiekt->name = 'name';

$obiektDwa = $obiekt;
$obiektDwa->name = 'name2';

echo $obiekt->name;
Kto teraz powie dlaczego wywali 'name2'?


RE: Klasy - camelrafal - 30-09-2012

zmienna przechowuje wskaznik do klasy a nie samą klase?


RE: Klasy - Pedro84 - 30-09-2012

(30-09-2012, 01:20)camelrafal napisał(a): zmienna przechowuje wskaznik do klasy a nie samą klase?
Eee, co ma klasa do obiektu? Nic, mylisz pojęcia.

(30-09-2012, 00:06)kornell napisał(a): bo czyrta od prawej i name ma później nadpisaną wartość na 'name2'
Nie do końca.

Odpowiedź: obiekty w PHP są przekazywane poprzez referencję. Prostymi słowami: w tym przykładzie, wywołując __set() dla nieistniejącego atrybutu name, pracujesz na tym samym obiekcie, który został utworzony i przechowywany w zmiennej $obiekt.

Chcę tylko pokazać, że proste z pozoru rzeczy, często są najtrudniejsze.


RE: Klasy - camelrafal - 30-09-2012

wskaźnik to właśnie taka referencja w php
w kompilowanych jezykach masz wskaźnik a w php masz referencje


RE: Klasy - Pedro84 - 30-09-2012

(30-09-2012, 13:59)camelrafal napisał(a): wskaźnik to właśnie taka referencja w php
w kompilowanych jezykach masz wskaźnik a w php masz referencje

1. Poczytaj jakie są różnice między wskaźnikami, a referencjami (np. w C++ http://pl.wikibooks.org/wiki/C++/Referencje).
2. W językach kompilowanych oczywiście referencje istnieją, a właściwie to współistnieją z wskaźnikami. Mylisz pojęcia.
3. Np. w takiej Javie, są jedyną metodą obsługi pamięci, innej nie masz.
4. Niektórzy mówią, że referencje (np. w takim C++) są pewnym klonem wskaźników, ale to nie to samo.


RE: Klasy - camelrafal - 30-09-2012

darujmy sobie to czepianie sie
generalnie w przykładzie jaki podałeś chodziło o to że zmienna nie jest obiektem a tylko odsyła do obiektu a nazewnictwo już jest mniej istotne w tym przypadku


RE: Klasy - Pedro84 - 30-09-2012

(30-09-2012, 17:08)camelrafal napisał(a): darujmy sobie to czepianie sie
generalnie w przykładzie jaki podałeś chodziło o to że zmienna nie jest obiektem a tylko odsyła do obiektu a nazewnictwo już jest mniej istotne w tym przypadku
Nazewnictwo jednak ma znaczenie: oral, anal - czy to jest to samo? Wink Tak samo jak wskaźnik to nie to samo co referencja, a klasa to nie to samo co obiekt. Niby pierdoły, ale wyjaśnij potem jakiejś lasce pomyłkę Big Grin

Anyway, ja byłem zszokowany po prostu jak na pewnym forum wielu "programistów" wymyślało różne teorie na ten temat. Jak znajdę link, to wrzucę, zacne.


RE: Klasy - camelrafal - 30-09-2012

a najgorsze kiedy jedno po drugim występuje i w dodatku nie w tej kolejności


RE: Klasy - Pedro84 - 30-09-2012

(30-09-2012, 20:49)camelrafal napisał(a): a najgorsze kiedy jedno po drugim występuje i w dodatku nie w tej kolejności
Albo kiedy piszą o tym w książkach i tłumacz da dupska i używa tych pojęć zamiennie.