[PHP]Podstawowe znaczniki w php |
[PHP]Podstawowe znaczniki w php |
14.03.2011, 21:27:49
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.03.2011 Ostrzeżenie: (0%) |
Witam,
ogarniam już php na pewnym poziomie, także nie jestem całkiem zielony. Przechodzę do rzeczy. Zastanawiają mnie pewne znaczniki, opisy, które widuję często w kodzie. 1.: Co czym się różni taki zapis:
od takiego:
2.: Przy tworzeniu klasy, przy deklarowaniu zmiennych spotkałem się z
Rozumiem tylko to drugie i trzecie (zmienna prywatna nie może być wyświetlana inaczej niż przez funkcję w klasie). 3.: To samo pytanie co wyżej tylko, że dotyczy metod. Czym mam się kierować tworząc metody, a konkretniej typy. Kiedy dawać statyczną, a kiedy protected? Jest w ogóle jakaś różnica między private a protected? Jak to jest, że te static wywołujemy Klasa::Metoda, a te normalne Klasa->Metoda ? Z góry dziękuję za wyjaśnienie |
|
|
14.03.2011, 22:02:50
Post
#2
|
|
Grupa: Zarejestrowani Postów: 385 Pomógł: 26 Dołączył: 22.03.2008 Skąd: TM Ostrzeżenie: (0%) |
1. To referencja. Chodzi o pracę na właściwym obiekcie/zmiennej a nie na kopii.
2. Pierwszy punkt to zapis ze starszych wersji PHP. 4 to chronione pole klasy. Chodzi o hermetyzację (widocznosć pól). Static to metoda/zmienna statyczna czyli taka którą można wywołać bez tworzenia egzemplarza klasy. Stosujemy statyczne tam gdzie czujemy że może będziemy musieli użyć metody tam gdzie tworzenie całej instancji klasy (tym samym zalokowanie pamięci) jest zbędne. -------------------- Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
|
|
|
14.03.2011, 22:05:56
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 1 Dołączył: 20.06.2002 Ostrzeżenie: (0%) |
Ad 1.)
To przypisanie przez referencje ( $object i $var będą miały tą samą wartość, nie zależnie do której przypiszesz wartość obie będą miały taką samą. Możesz myśleć o tym w ten sposób, że obie pokazują dokładnie w to samo miejsce w pamięci
Natomiast
to przypisanie przez wartość (tak jakby kopia), jak zmienisz $var to nie zmienia się $object Ad 2) php 4 tak się definiowało składowe klasy (wszystkie były publiczne), teraz używamy zakresów private, protected, public private - dostęp tylko dla obiektów danej klasy protected - dostęp dla obiektów danej klasy i klas dziedziczących po niej public - dostęp dla wszystkich ( defacto nie zalecane, chyba że wiesz co czynisz ) static to zmienia lub metoda statyczna, nie potrzebujesz tworzyć obiektu danej klasy żeby sie do niej odwołać Weźmy pod uwagę taką klase
żeby wywołać metodę m1 klasy A, musimy utworzyć obiekt tej klasy
natomiast, żeby wywołać metodę statyczną m2, nie musimy tworzyć obiektu klasy tylko odwołujemy się do niej statycznie
Uwaga: W metodach statycznych nie mamy dostępu do składowych klasy i operatora $this, bo nie mamy obiektu Poczytaj w manualu o klasach -------------------- ---
Pozdrowienia Marko |
|
|
14.03.2011, 22:21:01
Post
#4
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.03.2011 Ostrzeżenie: (0%) |
Dziękuję za jasne i przejrzyste wyjaśnienie.
Jestem mile zaskoczony przykładami, które właśnie zinterpretowałem Pozdrawiam |
|
|
Wersja Lo-Fi | Aktualny czas: 10.06.2024 - 10:10 |