![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 21.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam pewien dylemat dotyczący konstruktora i parametrów metody. Mam klasę Auth a w niej konstruktor który za parametry przyjmuje $login, $password, $email, $connect. Rozmawiając z moderatorem tego forum (blooregard) powiedział mi, że najlepiej gdyby konstruktor był wywoływany już przy utworzeniu obiektu. Bo wtedy wiadomo o jakie zmienne chodzi np. $this->login = $login Ale może pokażę na przykładzie:
Problem polega na tym, że wywołując konstruktor muszę mieć przekazywane jako parametry tego konstruktora, ale co jeśli dopiero chcę utworzyć obiekt i jeszcze nic nie mam a dopiero później są przekazywane jakieś wartości? Mówię tu o późniejszym wykorzystaniu metod np. Login gdzie potrzebuję $login, $password, $connect. Najpierw wypadałoby wywołać obiekt klasy, a następnie później wywoływać potrzebne metody. Klasa bez konstruktora jest dobrą klasą? Czy umieszczanie na początku każdej metody $this->login = $login; to dobre rozwiązanie w momencie gdy usunę konstruktor? Bo pisząc kod przypomina to trochę pisanie pisanie najzwyklejszych funkcji oprawionych w obiektówkę... Dopiero zaczynam z obiektowym PHP i jeśli możecie to proszę o jak najprostsze wyjaśnianie pewnych rzeczy (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() |
![]()
Post
#2
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat Rozmawiając z moderatorem tego forum (blooregard) powiedział mi, że najlepiej gdyby konstruktor był wywoływany już przy utworzeniu obiektu. Źle mnie zrozumiaeś (IMG:style_emoticons/default/smile.gif) Konstruktor JEST wywoływany automatycznie w momencie tworzenia obiektu. Ja Ci zasugerowałem, byś jako jego parametry przekazywał te wszystkie zmienne i w nim inicjalizował składowe klasy tymi wartościami. A obiekt możesz utowrzyć, gdy wartości tych zmiennych są znane. Jeśli już musisz utworzyć go zanim znasz wartości zmiennych, konstruktor zostaw pusty i dodaj metodę, która będzie inicjalizowała składowe klasy przekazanymi wartościami (tzw. setter). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 08:12 |