Tutorial Belajar OOP PHP Part 11 (Mengakses Constructor)
Tutorial Belajar OOP PHP Part 11 (Mengakses Constructor)
Category: Tutorial PHP
Setelah membahas cara mengakses property dan method parent class, dalam tutorial belajar OOP
PHP kali ini akan membahas cara mengakses constructor dan destructor parent class. Tutorial kali ini
masih berkaitan dengan efek pewarisan (inheritance) dalam pemrograman objek.
1 <?php
// buat class komputer
2 class komputer {
3
4 // buat constructor class komputer
5 public function __construct() {
6 echo "Constructor dari class komputer <br />";
7 }
8
// buat destructor class komputer
9 public function __destruct() {
10 echo "Destructor dari class komputer <br />";
11 }
12 }
13
14 // turunkan class komputer ke laptop
class laptop extends komputer {
15
16 // buat constructor class laptop
17 public function __construct() {
18 echo "Constructor dari class laptop <br />";
19 }
20
21 // buat destructor class laptop
public function __destruct() {
22 echo "Destructor dari class laptop";
23 }
24 }
25
26 // turunkan class laptop ke chromebook
27 class chromebook extends laptop {
28
// buat constructor class chromebook
29 public function __construct() {
30 echo "Constructor dari class chromebook <br />";
31 }
32
33 // buat destructor class chromebook
34 public function __destruct() {
echo "Destructor dari class chromebook <br />";
35 }
36 }
37 // buat objek dari class chromebook (instansiasi)
38 $gadget_baru = new chromebook();
39
echo "Belajar OOP PHP <br />";
40
?>
41
42
43
44
45
46
47
Kode diatas memiliki constructor dan destructor pada masing-masing class, mari kita lihat hasilnya:
Kemana constructor dan destructor class lainnya?
Di dalam PHP, ketika child class memiliki constructor dan destructor sendiri, maka PHP akan
melewatkan constructor dan destructor parent class, kasus ini disebut dengan Overridden
Constructordan Overridden Destructor. Karena di dalam contoh kita class
chromebook memiliki constructor dandestructor, maka constructor dan destructor class
induknya tidak dijalankan.
Bagaimana jika kita ingin constructor dan destructor parent class tetap dijalankan?
Solusinya, kita harus memanggil constructor dan destructor parent class secara manual denganScope
Resolution Operator, yakni: parent::__construct() dan parent::__desctruct().
Berikut adalah modifikasi kode program kita diatas:
1 <?php
// buat class komputer
2 class komputer {
3 public function __construct() {
4 echo "Constructor dari class komputer <br />";
5 }
6
7 public function __destruct() {
echo "Destructor dari class komputer <br />";
8 }
9 }
10
11 // turunkan class komputer ke laptop
12 class laptop extends komputer {
13 public function __construct() {
parent::__construct();
14 echo "Constructor dari class laptop <br />";
15 }
16
17 public function __destruct() {
18 echo "Destructor dari class laptop <br />";
19 parent::__destruct();
}
20 }
21
22 // turunkan class laptop ke chromebook
23 class chromebook extends laptop {
24
25
26
27 public function __construct() {
28 parent::__construct();
echo "Constructor dari class chromebook <br />";
29 }
30
31 public function __destruct() {
32 echo "Destructor dari class chromebook <br />";
33 parent::__destruct();
34 }
}
35
36 // buat objek dari class chromebook (instansiasi)
37 $gadget_baru = new chromebook();
38
39 echo "Belajar OOP PHP <br />";
40 ?>
41
42
43
Hasil yang kita dapat adalah:
Dalam tutorial belajar Object Oriented Programming (OOP) PHP kali ini, kita telah
mempelajari cara kerja constructor dan destructor jika sebuah class diturunkan dari class lain
(inheritance).
Constructor dan destructor parent class akan dijalankan jika child class tidak
mendefenisikanconstructor dan destructor sendiri. Namun jika child class juga
memiliki constructor dan desctructor, maka kita harus memanggil constructor dan destructor parent
class secara manual.
Dalam tutorial OOP PHP berikutnya, kita akan mempelajari pengertian static property dan static
method dalam pemrograman objek.