Self dan $this, Apa Perbedaanya dalam OOP PHP? - Ep. 11
Dalam bahasa yang sangat sederhana $this
digunakan untuk mereferensikan property atau method yang berada dalam current object. Sedangkan self
digunakan untuk mereferensikan property atau method yang berada dalam current class.
Jika sudah faham artikel saya tentang pewarisan, mari kita perhatikan dan praktekkan kode dibawah ini:
1. Penggunaan $this
Jika kode di atas dijalankan maka outputnya Saya programmer :)
.
Jika kita perhatikan, baik class Penulis
maupun class Programmer
sama-sama memiliki method saya()
. Kemudian class Programmer
adalah class turunan dari class Penulis
yaitu dengan melakukan extends Penulis
.
Pada baris bawah terdapat instansiai object $TukangKode
dari class Programmer
. Selanjutnya object $TukangKode
memanggil method sayaAdalah()
yang berasal dari class induk atau parent class. Method sayaAdalah()
memanggil method saya()
menggunakan $this
diikuti ->
.
Karena menggunakan $this
ini berarti yang dimaksud saya()
bukanlah saya()
yang berada dalam parent class atau class Penulis
melainkan saya()
yang berada dalam object-nya sendiri atau dalam object $TukangKode
, yaitu saya()
yang berisi echo "Saya programmer :)";
.
2. Penggunaan self
Jika kode di atas dijalankan maka outputnya Saya penulis :)
.
Perbedaan kode program ini dengan kode program sebelumnya hanyalah pada method sayaAdalah()
, dalam method tersebut tidak lagi menggunakan $this
ketika memanggil method saya()
melainkan menggunakan self
.
Karena menggunakan self
ini berarti yang dimaksud saya()
bukanlah saya()
yang berada dalam object-nya sendiri atau dalam object $TukangKode
melainkan saya()
yang berada dalam class-nya sendiri atau class Penulis
yang berisi echo "Saya penulis :)";
.
Mudah difahami kan? jika belum faham silakan berikan komentar 😄.