--> Skip to main content

Memahami Konstanta dalam Pemrograman PHP


Pada tutorial pemrograman PHP sebelumnya kita telah membahas mengenai variabel beserta scopenya, maka pada lanjutan kali ini kita akan membahas mengenai konstanta dalam PHP.

Konstanta merupakan variabel yang telah ditetapkan nilainya diawal dimana nilainya tidak akan berubah saat program dijalankan (runtime).

Dengan demikian peranan atau fungsi konstanta sama dengan variabel, sama-sama menyimpan sebuah informasi.

Cara menulis konstanta

Berbeda dengan variabel yang penulisannya selalu diawali dengan tanda dolar ($), untuk membuat konstanta kita tidak menggunakan tanda dolar tersebut. Untuk membuat konstanta kita menggunakan keyword define.

Namun mulai pada PHP Versi 5.3 keatas kita dapat membuat konstanta dengan keyword const.

Untuk membuat konstanta dalam sebuah class dapat digunakan dengan keyword const, sedangkan penggunaan keyword define dalam class akan menyebabkan error.

Syntax penulisan konstanta dengan menggunakan keyword define:
define (name, value, case-insensitive)

Keterangan :
  • name merupakan nama konstanta yang akan kita buat. Nama konstanta yang dibuat dengan keyword define bersifat global yang dapat diakses dari manapun termasuk dalam sebuah fungsi, meskipun nama konstanta didefinisikan diluar fungsi.
  • value merupakan nilai atau isi dari konstanta.
  • case-insensitive berfungsi untuk mengatur apakah nama konstanta bersifat case-insensitve atau tidak. Nilai defaultnya adalah False.
Syntax penulisan konstanta dengan menggunakan keyword const:
const name = "value"

Keterangan :
  • name adalah nama konstanta yang akan dibuat
  • value adalah isi dari konstanta

Konstanta dengan keyword define

Pada contoh pertama, kita akan membuat konstanta yang diakses diluar fungsi. Kita juga memperlakukan nama konstanta yang satu diset case-sensitive dengan membiarkannya secara default dan satu lagi kita set case-insensitive dengan mengsetnya TRUE.
<?php
define("Salam", "Selamat datang di Pusat Ilmu");
define("URL","http://ilmu-detil.blogpsot.com",TRUE);

echo Salam."<br>";
echo salam; // menyebabkan error karena konstanta case sensitive

echo "<br>";
echo URL."<br>";
echo urL; // tidak error karena nama konstanta diset case insensitive

?>

Outputnya :
Selamat datang di Pusat Ilmu

Notice: Use of undefined constant salam - assumed 'salam' in D:\xampp\htdocs\php_app\readmore\fungsiphp\value1.php on line 6
salam
http://ilmu-detil.blogpsot.com
http://ilmu-detil.blogspot.com

Pada contoh kedua, kita akan menunjukkan sebuah konstanta dapat diakses dalam sebuah fungsi meskipun pembuatan nama konstanta diluar fungsi :
<?php
define("Salam", "Selamat datang di Pusat Ilmu");

function panggil() {
    echo Salam;
}

panggil();
?>

Outputnya :
Selamat datang di Pusat Ilmu

Konstanta dengan keyword const

Pada contoh berikut kita akan menunjukkan pembuatan konstanta dalam sebuah class dan konstanta diluar class.
<?php
const Nama_Situs = "Pusat Ilmu";

class Situs
{
 const URL_SITUS = "http://ilmu-detil.blogpsot.com"; 
  
}
echo Situs::URL_SITUS;
echo"<br>";

echo Nama_Situs;
?>

Outputnya :
http://ilmu-detil.blogpsot.com
Pusat Ilmu

Perhatikan cara untuk mengakses sebuah konstanta yang ditetapkan dalam sebuah class, dimana kita menggunakan nama classnya dulu baru diikuti nama konstantanya (Situs::URL_SITUS). Sedangkan konstanta diluar class, langsung nama konstantanya dipanggil.

Pada contoh kedua, kita akan menunjukkan pembuatan konstanta dengan menggunakan keyword define dalam sebuah class yang menyebabkan error.
<?php

class Situs
{
 define URL_SITUS = "http://ilmu-detil.blogpsot.com";
}
echo siteProp::URL_SITUS;

?>

Outputnya :
Parse error: syntax error, unexpected 'define' (T_STRING), expecting function (T_FUNCTION)
Seperti yang terlihat pada outputnya, konstanta yang dibuat dengan keyword define tidak dapat dilakukan pada sebuah class. Namun berbeda dengan keyword const dapat dibuat diluar class dan didalam class.

Kesimpulannya jika ingin membuat konstanta dalam sebuah class, maka gunakan keyword cosnt.
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar