![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 4 Dołączył: 22.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Pisząc w PHP jakąś większą aplikację, wybieram programowanie obiektowe. Chcąc przypisać jakieś zmiennej coś, trzeba najpierw ustawić wartość dla zmiennej (przypisać), aby potem łatwo można byłoby pobrać zawartość odpowiadającej mi zmiennej. Jeżeli mam kilka zmiennych, to mogę sam napisać gettera i settera (stosując się do starszej wersji php) w taki sposób: Kod private $a; private $b; public function set_A($value) { $this->a = $value; } public function get_A() { return $this->a; } public function set_B($value) { $this->b = $value; } public function get_B() { return $this->b; } Powyższy zapis fajnie się ma, jeżeli mam maks do 5 zmiennych. Potem (szczerze) niechce mi się dalej pisać dla każdej zmiennej osobnej funkcji z GET i SET. Wpadłem dzisiaj na pomysł (dlatego dzisiaj, bo zwykle piszę funkcje set i get dla każdej zmiennej, ale ostatnio przytrafił mi się duży projekt z więcej niż pięcioma zmiennymi no i myślałem co by tu wykombinować aby się nie zapisać a było dobrze), aby stworzyć dwie funkcje - jedną SET i drugą GET. Wyglądałoby to tak: Kod (...) public function mySET($name, $value) { $this->$name = $value; } public function myGET($name) { return $this->$name; } Stosując to w praktyce, to byłoby mniej więcej tak: Kod private $fname; private $lname; private $addr; private $telephone; private $email; private $sex; private $city; private $country; private $zip_code; (...) $this->mySET('fname', 'Imie'); $this->mySET('lname', 'Nazwisko'); $this->mySET('addr', 'ul. jakaś-tam 10'); $this->mySET('telephone', 123456789); $this->mySET('email', 'imie.nazwisko@test.pl'); $this->mySET('sex', 'M'); $this->mySET('city', 'W-wa'); $this->mySET('country', 'PL'); $this->mySET('zip-code', 00-000); echo 'Imię i nazwisko ' . $this->myGET('fname') . ' ' . $this->myGET('lname') . '<br>'; echo 'Adres zamieszkania: ' . $this->myGET('addr') . '<br>'; (...) Jak widać, jest tu dużo zmiennych którym trzeba przypisać jakąś wartość. Moje pytanie jest następujące. Czy mogę zastosować takie rozwiązanie jak wcześniej przedstawiłem (z jedną tylko funkcją SET i jedną GET) i czy będzie ono równie skuteczne i dobre co napisanie dla każdej zmiennej funkcji set i get ![]() Proszę o opinie. Ten post edytował Calibri 26.10.2011, 17:45:00 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 44 Dołączył: 31.07.2011 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
można też wykorzystać __set i __get
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 44 Dołączył: 31.07.2011 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.05.2025 - 07:53 |