Class adalah template untuk object, dan object adalah turunan dari class.
Kasus OOP
Anggap saja kita memiliki class bernama Buah. Buah dapat memiliki properti seperti nama, warna, berat, dll. Kita dapat mendefinisikan variabel seperti $nama, $warna, dan $berat untuk menyimpan nilai dari properti ini.
Saat object individual (apel, pisang, dll.) dibuat, mereka mewarisi semua properti dan perilaku dari class, tetapi setiap object akan memiliki nilai properti yang berbeda.
Menentukan Class
Class didefinisikan dengan menggunakan kata kunci class, diikuti dengan nama class dan sepasang kurung kurawal ({}). Semua properti dan fungsinya masuk ke dalam kurung:
Sintaks
<?php
class Buah {
// kode disini...
}
?>
Di bawah ini kami mendeklarasikan class bernama Buah yang terdiri dari dua properti ($nama dan $warna) dan dua fungsi set_name() dan get_name() untuk menyetel dan mendapatkan properti $nama:
<?php
class Buah {
// Properti
public $nama;
public $warna;
// Fungsi
function set_name($nama) {
$this->nama = $nama;
}
function get_name() {
return $this->nama;
}
}
?>
Catatan: Di class, variabel disebut properti
Membuat Object
Class tidak bisa dipakai tanpa object! Kita dapat membuat banyak object dari sebuah class. Setiap object memiliki semua properti dan fungsi yang ditentukan dalam class, tetapi mereka akan memiliki nilai properti yang berbeda.
Object class dibuat menggunakan kata kunci new.
Pada contoh di bawah, $apel dan $pisang adalah instance object dari class Buah:
Contoh
<!DOCTYPE html>
<html>
<body>
<?php
class Buah {
// Properti
public $nama;
public $warna;
// Fungsi
function set_name($nama) {
$this->nama = $nama;
}
function get_name() {
return $this->nama;
}
}
$apel = new Buah();
$pisang = new Buah();
$apel->set_name('Apel');
$pisang->set_name('Pisang');
echo $apel->get_name();
echo "<br>";
echo $pisang->get_name();
?>
</body>
</html>
Dalam contoh di bawah ini, kami menambahkan dua fungsi lagi ke class Buah, untuk menyetel dan mendapatkan properti $warna:
Contoh
<!DOCTYPE html>
<html> <body> <?php class Buah { // Properti public $nama; public $warna; // Fungsi function set_name($nama) { $this->nama = $nama; } function get_name() { return $this->nama; } function set_color($warna) { $this->warna = $warna; } function get_color() { return $this->warna; } } $apel = new Buah(); $apel->set_name('Apel'); $apel->set_color('Merah'); echo "Nama: " . $apel->get_name(); echo "<br>"; echo "Warna: " . $apel->get_color(); ?> </body> </html>
Keyword $this
Keyword $this pada PHP adalah sebuah keyword yang digunakan untuk mengacu pada object saat ini di dalam sebuah fungsi pada class. Hal ini memungkinkan untuk mengakses properti dan fungsi dari object yang sedang digunakan pada saat itu.
Lihat contoh berikut:
Contoh
<?php
class Buah {
public $nama;
}
$apel = new Buah();
?>
Jadi, di mana kita dapat mengubah nilai properti $nama? Ada dua cara:
Dalam Class
Cara ini yaitu dengan menambahkan fungsi set_name() dan menggunakan keyword $this:
Contoh
<!DOCTYPE html>
<html>
<body>
<?php
class Buah {
public $nama;
function set_name($nama) {
$this->nama = $nama;
}
}
$apel = new Buah ();
$apel->set_name("Apel");
echo $apel->nama;
?>
</body>
</html>
Di Luar Class
Cara ini dengan langsung mengubah nilai properti yang bersangkutan:
Contoh
<!DOCTYPE html>
<html>
<body>
<?php
class Buah {
public $nama;
}
$apel = new Buah ();
$apel->nama = "Apel";
echo $apel->nama;
?>
</body>
</html>
Keyword instanceof
Anda dapat menggunakan kata kunci instanceof untuk memeriksa apakah suatu object termasuk dalam class tertentu:
Contoh
<!DOCTYPE html>
<html>
<body>
<?php
class Buah {
// Properti
public $nama;
public $warna;
// Fungsi
function set_name($nama) {
$this->nama = $nama;
}
function get_name() {
return $this->nama;
}
}
$apel = new Buah();
var_dump($apel instanceof Buah);
?>
</body>
</html>
Tutorial sebelumnya : PHP OOP
Tutorial setelahnya : PHP Constructor
Semua Tutorial PHP : Tutorial PHP