![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 3.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam główną klasę CORE, a w niej zmienną URI.
Do wszystkich metod odwołuję się przez klasa::metoda(); Jak przypisać zmiennej URI w klasie CORE jakąś wartość, np. łańcuch "abcd" ? i jak taką zmienną odczytać? na przykład: core:$uri="abcd"; ale jak to ustrojstwo odczytać? z góry przepraszam za moją ignorancję w temacie, zwykle pracowałem na kilku klasach ze zmiennymi globalnymi, gdzie zasięg zmiennych nie był takim problemem. Teraz chciałbym poznać trochę OOP w PHP5 z góry wielkie dzięki za pomoc! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli jest to zmienna publiczna i statyczna, możesz się do niej odwoływać w sposób następujący:
-------------------- Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 3.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie tego szukałem
![]() Przeglądałem pliki frameworka FatFree i znalazłem tam coś podobnego protected static Jaki jest zasięg takiej zmiennej? Tylko w obrębie jednej klasy? Przyznam się, że mam mały mętlik w głowie... Niektóre programy używają klas i tworzonych obiektów (metodami w stylu $db=new db;), a do metod odwołują się np. przez $this->db->get(); a inne korzystają z ::, np. db::get(); Które "podejście" jest właściwe? Chodzi mi o to, że dotychczas posługiwałem się deklarowanymi klasami $gdzieśtam->cośtam nowe (dla mnie) wzorce pracy z klasami w PHP strasznie mi się podobają, do tego stopnia, że znacznie wygodniej pracować mi ze zmiennymi public static, niż z tworzonymi obiektami.... tylko czy takie podejście nie jest przypadkiem mało profesjonalne? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tylko w obrębie klasy oraz tych, które po niej dziedziczą. Jeżeli nie chcesz, żeby dzieci dziedziczące po tej klasie nie miały dostępu do zmiennej, użyj private zamiast protected. Na zewnątrz tylko public. Oczywiście public jest niezalecane, lepiej walidować, rzutować etc., możesz mieć śmieci w klasie.
A jeżeli chcesz już używać zmiennych publicznie, składuj je w prywatnej tablicy, która jest sterowana metodami magicznymi __get i __set. Kiedyś pisałem klasę, po której często dziedziczę: http://athlan.pl/code/Attribute.Class Co czego się przyda? Ano do wszystkiego. http://athlan.pl/code/Tagcloud.Class Grunt, żeby zmienne które nie są protected $_aAttributes = array(); nie były widoczne na zewnątrz. -------------------- Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 21:17 |