PHP OOP - Kelas dan Objek
Kelas adalah template untuk objek, dan objek adalah turunan dari kelas.
Kasus OOP
Mari kita asumsikan kita memiliki kelas bernama Fruit. Buah dapat memiliki properti seperti nama, warna, berat, dll. Kita dapat mendefinisikan variabel seperti $nama, $warna, dan $berat untuk menyimpan nilai properti ini.
Ketika objek individu (apel, pisang, dll.) dibuat, mereka mewarisi semua properti dan perilaku dari kelas, tetapi setiap objek akan memiliki nilai properti yang berbeda.
Tentukan Kelas
Sebuah kelas didefinisikan dengan menggunakan class
kata kunci, diikuti dengan nama kelas dan sepasang kurung kurawal ({}). Semua properti dan metodenya masuk ke dalam kurung:
Sintaksis
<?php
class Fruit {
// code goes here...
}
?>
Di bawah ini kami mendeklarasikan kelas bernama Fruit yang terdiri dari dua properti ($name dan $color) dan dua metode set_name() dan get_name() untuk menyetel dan mendapatkan properti $name:
<?php
class Fruit {
// Properties
public
$name;
public $color;
// Methods
function
set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
?>
Catatan: Dalam sebuah kelas, variabel disebut properti dan fungsi disebut metode!
Tentukan Objek
Kelas bukanlah apa-apa tanpa objek! Kita dapat membuat beberapa objek dari sebuah kelas. Setiap objek memiliki semua properti dan metode yang didefinisikan di kelas, tetapi mereka akan memiliki nilai properti yang berbeda.
Objek kelas dibuat menggunakan new
kata kunci.
Pada contoh di bawah, $apple dan $banana adalah instance dari kelas Fruit:
Contoh
<?php
class Fruit {
// Properties
public
$name;
public $color;
// Methods
function
set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');
echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>
Pada contoh di bawah ini, kita menambahkan dua metode lagi ke kelas Fruit, untuk menyetel dan mendapatkan properti $color:
Contoh
<?php
class Fruit {
// Properties
public $name;
public $color;
// Methods
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
function set_color($color) {
$this->color = $color;
}
function get_color() {
return $this->color;
}
}
$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "<br>";
echo "Color: " . $apple->get_color();
?>
PHP - $ini Kata Kunci
Kata kunci $this merujuk ke objek saat ini, dan hanya tersedia di dalam metode.
Lihatlah contoh berikut:
Contoh
<?php
class Fruit {
public $name;
}
$apple = new Fruit();
?>
Jadi, di mana kita dapat mengubah nilai properti $name? Ada dua cara:
1. Di dalam kelas (dengan menambahkan metode set_name() dan menggunakan $this):
Contoh
<?php
class Fruit {
public $name;
function set_name($name) {
$this->name = $name;
}
}
$apple = new Fruit();
$apple->set_name("Apple");
echo $apple->name;
?>
2. Di luar kelas (dengan langsung mengubah nilai properti):
Contoh
<?php
class Fruit {
public $name;
}
$apple = new Fruit();
$apple->name = "Apple";
echo $apple->name;
?>
PHP - instanceof
Anda dapat menggunakan instanceof
kata kunci untuk memeriksa apakah suatu objek termasuk dalam kelas tertentu:
Contoh
<?php
$apple = new Fruit();
var_dump($apple instanceof
Fruit);
?>