KWALIFIKACJA INF3 - STYCZEŃ 2015

PYTANIE NR 33.
Konstruktor w języku PHP jest metodą o nazwie
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W PHP konstruktor obiektu to specjalna metoda klasy wywoływana automatycznie przy tworzeniu instancji.
Standardowo ma nazwę __construct, dzięki czemu można zainicjalizować pola obiektu lub przekazać dane startowe. Pozostałe nazwy nie są w PHP zdefiniowane jako konstruktor.

Pełne wyjaśnienie:

W programowaniu obiektowym w PHP konstruktor jest metodą służącą do inicjalizacji obiektu. Uruchamia się automatycznie w momencie tworzenia instancji klasy (np. przy użyciu operatora tworzenia obiektu), dlatego jest typowym miejscem na ustawienie wartości początkowych pól, sprawdzenie poprawności argumentów lub przekazanie zależności (np. obiektu połączenia z bazą).

Poprawna nazwa konstruktora w PHP to __construct. Jest to metoda specjalna (tzw. "magiczna") rozpoznawana przez interpreter PHP. Dzięki temu PHP wie, że ma ją wywołać automatycznie przy tworzeniu obiektu.

Dlaczego pozostałe odpowiedzi są błędne?

  • __open – nie jest standardową metodą specjalną PHP. Sama obecność dwóch podkreśleń nie oznacza, że metoda ma specjalne znaczenie.
  • __create – taka nazwa może wystąpić w kodzie jako zwykła metoda użytkownika, ale PHP nie traktuje jej jako konstruktora, więc nie uruchomi jej automatycznie przy tworzeniu instancji.
  • __new – w PHP tworzenie obiektu wiąże się z operatorem tworzenia instancji, a nie z metodą o tej nazwie. Konstruktor pozostaje metodą __construct.

Wskazówka egzaminacyjna: w PHP wiele metod specjalnych zaczyna się od podwójnego podkreślenia, ale trzeba zapamiętać ich konkretne nazwy. Dla konstruktora zawsze kluczowe jest słowo construct w nazwie metody.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Konstruktor w PHP to specjalna metoda klasy wywoływana automatycznie przy tworzeniu obiektu. Służy do inicjalizacji pól, ustawienia stanu początkowego oraz przyjęcia parametrów startowych, np. danych konfiguracyjnych lub zależności potrzebnych obiektowi do działania.
Konstruktor w PHP standardowo nazywa się __construct. To metoda rozpoznawana przez interpreter PHP, dlatego uruchamia się automatycznie podczas tworzenia instancji klasy i nie trzeba jej wywoływać ręcznie.
Podwójne podkreślenie jest konwencją metod specjalnych (tzw. magicznych) w PHP. Oznacza, że dana metoda ma z góry ustalone znaczenie dla języka. Nie każda metoda z "__" jest jednak magiczna — tylko konkretne, zdefiniowane nazwy mają specjalne działanie.
Metoda __construct wywołuje się automatycznie w momencie tworzenia obiektu (instancji) danej klasy. Dzięki temu od razu można ustawić wymagane właściwości, wykonać wstępne sprawdzenia argumentów lub przygotować obiekt do dalszego użycia.
Tak. Konstruktor może nie przyjmować żadnych parametrów, jeśli obiekt nie wymaga danych wejściowych przy tworzeniu. Wtedy __construct służy np. do ustawienia domyślnych wartości właściwości albo przygotowania wewnętrznych struktur obiektu.
PHP jako konstruktor rozpoznaje metodę __construct. Inna nazwa może istnieć w klasie jako zwykła metoda, ale nie będzie uruchamiana automatycznie przy tworzeniu obiektu. Na egzaminie należy wskazywać właśnie __construct.
Konstruktor __construct uruchamia się przy tworzeniu obiektu i przygotowuje go do pracy. Destruktor (zwykle __destruct) uruchamia się przy niszczeniu obiektu i służy do sprzątania, np. zamknięcia zasobów. To dwa różne etapy cyklu życia obiektu.
W PHP tworzenie obiektu kojarzy się z operatorem tworzenia instancji, ale nie ma magicznej metody o nazwie __new, która pełniłaby rolę konstruktora. Interpreter wywołuje automatycznie tylko konstruktor nazwany __construct.
W PHP nie przeciąża się konstruktora przez wiele metod o tej samej nazwie. Typowo stosuje się parametry opcjonalne, wartości domyślne lub przekazywanie tablicy/opcji konfiguracyjnych, aby jedna metoda __construct obsłużyła różne warianty tworzenia obiektu.
Najczęstszy błąd to wybór "magicznie wyglądającej" nazwy z podwójnym podkreśleniem, ale niezgodnej ze specyfikacją (np. __create). Drugi błąd to przenoszenie nawyków z innych języków i szukanie odpowiedników "new" zamiast zapamiętania właściwej nazwy __construct.
info

To pytanie poprawnie rozwiązuje 83% zdających egzamin. średnio łatwe

Według specjalistów z branży: "Pozostałe nazwy nie są w PHP zdefiniowane jako konstruktor."

Źródła:

  • PHP Manual: Constructors and Destructors (OOP) – https://www.php.net/manual/en/language.oop5.decon.php (dostęp: 2026-02-27)
  • PHP Manual: Magic Methods – https://www.php.net/manual/en/language.oop5.magic.php (dostęp: 2026-02-27)
  • W3Schools: PHP Constructors – https://www.w3schools.com/php/php_oop_constructor.asp (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja PHP: OOP i konstruktory
  • Dokumentacja PHP: metody magiczne
  • Ćwiczenia: tworzenie klas z konstruktorem i parametrami

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego