Menu
Coddy logo textTech

Konstruktor (__construct)

Część sekcji Programowanie obiektowe ścieżki PHP w Coddy. Lekcja 7 z 91.

Metoda __construct to specjalna metoda, która uruchamia się automatycznie po utworzeniu nowego obiektu. Inicjalizuje właściwości obiektu.

Oto przykład klasy z konstruktorem:

<?php
class Dog {
    public $name;
    public $breed;

    public function __construct($name, $breed) {
        $this->name = $name;
        $this->breed = $breed;
    }
}

Metoda __construct przyjmuje parametry i przypisuje je do właściwości za pomocą $this.

Twórz obiekty za pomocą konstruktora:

$rex = new Dog("Rex", "German Shepherd");
$buddy = new Dog("Buddy", "Golden Retriever");

Gdy wywołujesz new Dog("Rex", "German Shepherd"), PHP automatycznie wywołuje __construct i przekazuje argumenty.

Uzyskaj dostęp do właściwości ustawionych przez konstruktor:

echo $rex->name . "\n";
echo $rex->breed . "\n";
echo $buddy->name . "\n";
echo $buddy->breed . "\n";

Wynik:

Rex
German Shepherd
Buddy
Golden Retriever

Możesz też mieć konstruktor z domyślnymi wartościami parametrów:

class Cat {
    public $name;
    public $age;

    public function __construct($name, $age = 1) {
        $this->name = $name;
        $this->age = $age;
    }
}

$fluffy = new Cat("Fluffy", 3);
$whiskers = new Cat("Whiskers");  // domyślna wartość age to 1

echo $fluffy->name . " is " . $fluffy->age . " years old\n";
echo $whiskers->name . " is " . $whiskers->age . " years old\n";

Wynik:

Fluffy is 3 years old
Whiskers is 1 years old

Kluczowa kwestia: metoda __construct zapewnia, że każdy obiekt jest prawidłowo inicjowany danymi początkowymi w momencie utworzenia. Dzięki niej nie musisz ręcznie ustawiać właściwości po utworzeniu obiektu.

challenge icon

Wyzwanie

Łatwy

Otrzymujesz pliki PHP (book.php i driver.php) do zaimplementowania systemu książek.

Twoje zadanie:

  • Uzupełnij klasę Book w pliku book.php o metodę __construct, która inicjalizuje właściwości $title, $author i $pages
  • W pliku driver.php zaimportuj i utwórz obiekt książki "Harry Potter" autorstwa "J.K. Rowling", liczącej 400 stron

Postępuj zgodnie z komentarzami TODO w każdym pliku.

Spróbuj swoich sił

<?php
require_once 'book.php';

// TODO: Utwórz obiekt Book z następującymi właściwościami:
// title: "Harry Potter", author: "J.K. Rowling", pages: 400
$myBook = ?;

echo "'" . $myBook->title . "' by " . $myBook->author . ", " . $myBook->pages . " pages\n";
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator PHP online