Kodealgo

Konstanta PHP

Konstanta adalah pengidentifikasi atau nama untuk nilai sederhana yang tidak dapat diubah selama eksekusi. Mirip dengan variabel, perbedaan utamanya adalah nilainya tidak dapat diubah entah itu dengan nilai dengan tipe yang sama maupun berbeda.

Selain itu, konstanta memiliki ruang lingkup global tapi dalam namespace yang berbeda, sehingga dapat diakses dimana saja dalam kode program.

Seperti yang telah disebutkan di atas, saat kita menulis kode program PHP, konstanta paling sering digunakan untuk membuat variabel tetap yang nilainya tidak dapat diubah.

Berikut beberapa topik yang akan kita bahas terkait konstanta.

  1. Cara Membuat Konstanta
    1. Menggunakan Fungsi define()
    2. Menggunakan Kata Kunci const
  2. Predefined Constants
  3. Magic Constants
  4. Perbedaan Konstanta dan Variabel

Cara Membuat Konstanta

Konstanta di PHP dapat dibuat dalam 2 cara, yaitu menggunakan fungsi define() atau kata kunci const.

Nama konstanta memiliki aturan yang mirip dengan variabel, harus dimulai dengan huruf atau garis bawah lalu diikuti dengan sejumlah huruf, angka, atau garis bawah. Selain itu, nama konstanta biasanya dibuat mengguankan huruf besar semua.

Menggunakan Fungsi define()

Metode yang paling umum untuk membuat konstanta adalah menggunakan fungsi defined().

Sintaks

define(string $namaKonstanta, mixed $nilaiKonstanta): bool

Parameter

  • $namaKonstanta - string sebagai nama konstanta
  • $nilaiKonstanta - nilai dapat berupa integer, float, string, boolean, null, atau array.

Nilai Kembalian

Fungsi define() mengembalikan nilai boolean true jika konstanta berhasil dibuat, atau false jika gagal.

Contoh

Contoh dibawah, kami membuat konstanta bernama NAMA yang nilainya adalah "budi", kemudian kami mencetaknya menggunakan echo.

<?php

define("NAMA", "budi");

echo NAMA; // budi

Seperti yang disebutkan di atas, fungsi ini mengembalikan nilai boolean, nilai ini biasanya tidak digunakan. Untuk pembuktian mari kita tampung nilainya, ke dalam sebuah variabel dan kita lihat nilai tersebut.

<?php

$nilaiKembalian = define("NAMA", "budi");

var_dump($nilaiKembalian); // bool(true)

Menggunakan Kata Kunci const

Kita juga bisa membuat konstanta menggunakan kata kunci const, secara umum perilakunya mirip dengan fungis define().

konstanta yang dibuat dengan kata kunci const dapat menampung nilai boolean, integer, float, string, dan array.

Untuk membuatnya kita bisa menulis kata kunci const diikuti dengan nama konstanta, kemudian operator sama dengan (=) diikuti dengan nilai dari konstanta tersebut.

Contoh:

<?php

const NAMA = "budi"; // konstanta

echo NAMA; // budi

Predefined Constants

PHP menyediakan sejumlah konstanta yang telah dibuat atau didefinisikan (predefined constants), kita tidak perlu membuatnya secara manual karena ini sudah didefinisikan oleh PHP, kita bisa menggunakannya secara langsung.

Berikut beberapa konstanta PHP yang telah didefinisikan (predefined constants):

  • PHP_VERSION - versi PHP yang digunakan.
  • PHP_OS - sistem operasi target build PHP.
  • PHP_INT_MAX - nlai integer terbesar yang didukung PHP.
  • PHP_INT_MIN - nilai integer terkecil yang didukung PHP.
  • PHP_INT_SIZE - ukuran integer dalam byte.
  • PHP_FLOAT_MIN - nilai floating point positif terkecil yang dapat diwakili.
  • PHP_FLOAT_MAX - nilai floating point terbesar yang dapat diwakili.

Magic Constants

PHP juga memiliki konstanta yang dapat berubah-ubah tergantung dimana mereka gunakan, ini disebut magic constanta. Semua magic constanta diselesaikan pada waktu kompilasi oleh karena itu nilainya dapat berubah, sedangkan konstanta umum diselesaikan saat runtime.

Magic constanta tidak peka huruf besar/kecil, artinya kita dapat memanggilnya menggunakan huruf kecil semua, huruf besar semua, atau campuran.

Berikut 9 magic constanta di PHP:

  • __LINE__ - nomor baris saat ini.
  • __FILE__ - path lengkap dan nama file saat ini.
  • __DIR__ - path direktori saat ini, setara dengan dirname(__FILE__).
  • __FUNCTION__ - mengembalikan nama fungsi jika digunakan di dalam badan fungsi bernama, atau mengembalikan {closure} jika di dalam fungsi tanpa nama (anonymous functions).
  • __CLASS__ - mengembalikan nama kelas dan namespace jika digunakan di dalam kelas.
  • __TRAIT__ - mengembalikan nama trait jika digunakan di dalam trait.
  • __METHOD__ - mengembalikan nama method jika digunakan di dalam method kelas.
  • __NAMESPACE__ - mengembalikan namespace saat ini.
  • ClassName::class - mengembalikan nama kelas termasuk namespace, ubah ClassName dengan nama kelas.

Perbedaan Konstanta dan Variabel

Jika dilihat sekilas, konstanta dan variabel memiliki sintaks dan fungsi yang cukup mirip, tapi sebetulnya tentu saja berbeda.

Berikut beberapa perbedaan konstanta:

  • Konstanta tidak memiliki tanda dolar ($) seperti variabel.
  • Konstanta dapat didefinisikan dan diakses dimana saja tanpa memperhatikan aturan lingkup variabel.
  • Konstanta mungkin tidak didefinisikan ulang atau tidak ditentukan setelah ditetapkan.
  • Konstanta hanya dapat mengevaluasi ke nilai dengan tipe scalar atau array.