Dalam PHP, kita bisa mendeklarasikan konstanta di dalam class menggunakan kata kunci const. Seperti halnya properti statis, konstanta dapat diakses langsung melalui class atau dalam method objek menggunakan notasi self. Setelah sebuah konstanta didefinisikan, nilainya tidak bisa diubah lagi.
const
self
Untuk menetapkan konstanta dalam class, kita menggunakan const di dalam class dan memberikan nilai tetap yang tidak dapat diubah. Sebagai praktik umum, kita menulis nama konstanta dalam huruf kapital untuk membedakannya dari property atau method lainnya.
Petunjuk:
RUN
<?php class MetodePembayaran { public const TIPE_KARTUKREDIT = 0; // Konstanta untuk kartu kredit public const TIPE_TUNAI = 1; // Konstanta untuk pembayaran tunai } // Mengakses konstanta dari luar class echo MetodePembayaran::TIPE_KARTUKREDIT;
Pada contoh di atas, kita mendeklarasikan dua konstanta dalam class MetodePembayaran yang dapat diakses secara langsung menggunakan tanda ::. Nilai konstanta ini tidak dapat diubah setelah didefinisikan.
MetodePembayaran
::
Mengakses konstanta dari luar class:
echo MetodePembayaran::TIPE_KARTUKREDIT; // Output: 0
Seperti halnya property, kita juga bisa mengatur aksesibilitas dari konstanta menggunakan access modifier seperti public, protected, atau private.
public
protected
private
Contoh berikut menunjukkan bagaimana mengatur aksesibilitas konstanta:
<?php class Orang { protected const KONSTANTA_PROTECTED = false; public const USERNAME_DEFAULT = "<unknown>"; private const KODE_INTERNAL = "ABC1234"; } // Mengakses konstanta publik echo Orang::USERNAME_DEFAULT; // Akses konstanta protected atau private akan menghasilkan error // echo Orang::KONSTANTA_PROTECTED; // Error
Pada contoh ini, konstanta USERNAME_DEFAULT dapat diakses dari luar class karena dideklarasikan sebagai public, sedangkan KONSTANTA_PROTECTED hanya bisa diakses di dalam class atau class yang mewarisinya. KODE_INTERNAL hanya bisa diakses di dalam class yang mendeklarasikannya.
USERNAME_DEFAULT
KONSTANTA_PROTECTED
KODE_INTERNAL
Kita bisa menggunakan konstanta dalam method statis dengan cara yang sama, yaitu menggunakan kata kunci self untuk merujuk konstanta tersebut.
<?php class Translate { const INDONESIA = 0; const KOREA = 1; const JEPANG = 2; const MALAYSIA = 3; public static function lookup() { echo self::KOREA; } } Translate::lookup();
Pada contoh di atas, kita mendeklarasikan beberapa konstanta dalam class Translate dan menggunakan self::KOREA di dalam method statis lookup untuk menampilkan nilai konstanta KOREA. Konstanta ini diakses langsung tanpa perlu membuat object terlebih dahulu.
Translate
self::KOREA
lookup
KOREA
Kita juga bisa membuat konstanta global menggunakan fungsi define(). Konstanta ini dapat diakses di mana saja dalam skrip PHP, tidak terbatas pada class tertentu.
define()
<?php define('NAMA_PERUSAHAAN', 'PT. Teknologi Maju'); // Mengakses konstanta global echo NAMA_PERUSAHAAN;
Pada contoh ini, kita mendefinisikan konstanta NAMA_PERUSAHAAN menggunakan define() dan mengaksesnya tanpa perlu menggunakan class atau object.
NAMA_PERUSAHAAN
Untuk menguji sejauh mana kamu memahami cara mendefinisikan konstanta dalam class PHP, susunlah potongan-potongan kode berikut menjadi urutan kode PHP yang benar!