Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcja get i set - czy można tak stosować
Calibri
post 26.10.2011, 17:35:03
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 questionmark.gif

Proszę o opinie.

Ten post edytował Calibri 26.10.2011, 17:45:00
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:00