Menu
CoddyTech

Constructor (__construct)

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan PHP di Coddy. Pelajaran 7 dari 91.

Method __construct adalah method khusus yang otomatis berjalan saat kamu membuat object baru. Method ini menginisialisasi property object tersebut.

Berikut contoh class dengan constructor:

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

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

method __construct menerima parameter dan menetapkannya ke property menggunakan $this.

Buat object menggunakan constructor:

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

Saat kamu memanggil new Dog("Rex", "German Shepherd"), PHP secara otomatis memanggil __construct dan meneruskan argumennya.

Akses property yang ditetapkan oleh constructor:

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

Output:

Rex
German Shepherd
Buddy
Golden Retriever

Kamu juga bisa menggunakan constructor dengan nilai parameter default:

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");  // nilai bawaan age adalah 1

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

Keluaran:

Fluffy is 3 years old
Whiskers is 1 years old

Poin penting: method __construct memastikan setiap object disiapkan dengan benar menggunakan data awalnya saat dibuat. Ini membuatmu tidak perlu mengatur property secara manual setelah object dibuat.

challenge icon

Tantangan

Mudah

Kamu diberi file PHP (book.php dan driver.php) untuk membuat sistem buku.

Tugasmu:

  • Lengkapi class Book di book.php dengan method __construct yang menginisialisasi property $title, $author, dan $pages
  • Di driver.php, impor dan buat object buku untuk "Harry Potter" karya "J.K. Rowling" dengan 400 halaman

Ikuti komentar TODO di setiap file.

Coba sendiri

<?php
require_once 'book.php';

// TODO: Buat object Book dengan:
// title: "Harry Potter", author: "J.K. Rowling", pages: 400
$myBook = ?;

echo "'" . $myBook->title . "' by " . $myBook->author . ", " . $myBook->pages . " pages\n";
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler PHP online