Postingan lainnya
Penjelaskan tentang parent::__construct() pada OOP di PHP
Sesuai judul disini saya mendapatkan script dari dosen dan tidak dijelaskan tentang
parent::__constrcut();
Berikut script nya
<?php
class kalkulator {
function __construct(){
echo 'aplikasi kalkulator<br>';
}
function jumlah ($angka1,$angka2){
$hasil = $angka1 + $angka2;
echo $hasil;
}
function perkalian($angka1, $angka2){
$hasil = $angka1 * $angka2;
echo $hasil;
}
}
class bidang_datar extends kalkulator {
function __construct (){
parent::__construct();
echo 'kelas '.__CLASS__.'<br>';
}
function luas_persegi($sisi){
$luas_persegi = $this->perkalian($sisi, $sisi);
echo '<br>'.$luas_persegi;
}
function keliling_persegi($sisi){
$keliling_persegi = $this->perkalian(4,$sisi);
echo '<br>'.$keliling_persegi;
}
}
?>
Mohon pengertiannya ~ Happy ngoding :D
9 Jawaban:
Entahlah, __construct itu fungsi yang jalan otomatis ketika class nya di inisialisasi. Kalau di dalam fungsi __construct dia eksekusi parent::__construct(), jadi ketika classnya dinisialisasi, artinya dia menjalankan __construct nya dua kali.
<?php
class kalkulator {
function __construct(){ //construct kalkulator
echo 'aplikasi kalkulator<br>';
}
function jumlah ($angka1,$angka2){
$hasil = $angka1 + $angka2;
echo $hasil;
}
function perkalian($angka1, $angka2){
$hasil = $angka1 * $angka2;
echo $hasil;
}
}
class bidang_datar extends kalkulator { //bidang_datar sebagai child dari kalkulator
function __construct (){ //construct bidang_datar
parent::__construct(); //construct kalkulator (parent)
echo 'kelas '.__CLASS__.'<br>';
}
function luas_persegi($sisi){
$luas_persegi = $this->perkalian($sisi, $sisi);
echo '<br>'.$luas_persegi;
}
function keliling_persegi($sisi){
$keliling_persegi = $this->perkalian(4,$sisi);
echo '<br>'.$keliling_persegi;
}
}
?>
seperti komen diatas, construct itu fungsi yg jalan otomatis ketika classnya dijalankan, dan fungsi
parent::__construct()
adalah untuk menjalankan construct pada parent nya, pada kasus ini kalkulator sebagai mana di class bidang_datar disebutkan extends kalkulator
Jadi intinya
parent::__construct()
Menjalankan 2 kali ?
Sesuai penjelasan @IamAN, fungsi
parent::__construct()
bakal otomatis menjalankan __construct() nya dari class "kalkulator". Jadi ketika class "bidang_datar" di inisialisasi, maka dia udah menjalankan 2 __construct(), yang pertama __construct() nya class "bidang_datar" yang kedua __construct() nya "kalkulator"
@KepalaSekolah ga ngerun 2x, karena fungsi __construct nya itu berbeda
<div>apabila sebuah class diberikan parent construct maka class tersebut (class kalkulator) otomatis menjadi sebuah parent class. Sehingga sesuai yang dicantumkan pada source code diatas ketika class lain menginisialisasi parent class tersebut </div><pre>class bidang_datar extends kalkulator</pre><div>maka class yang memanggil/menggunakan/melakukan penginisialisasian (class bidang_datar)<br>mendapatkan sifat yang diturunkan dari parent class tersebut. Dalam hal ini sifat turunan yang digunakan adalah </div><pre>function perkalian($angka1, $angka2){ $hasil = $angka1 * $angka2; echo $hasil; } </pre><div>pada class kalkulator dan digunakan oleh class bidang_datar untuk menyelesaikan permasalahan hitung luas dan keliling </div><pre>function keliling_persegi($sisi){ $keliling_persegi = $this->perkalian(4,$sisi); echo '<br>'.$keliling_persegi; }</pre><div><br>Sama seperti peribahasa bilang, buah jatuh tidak jauh dari pohonnya. Happy coding :v</div>