PHP Class dan PHP Object

PHP Class dan PHP Object

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>

Tinggalkan Balasan

Keranjang Belanja0
Keranjang belanja kosong ...
0