The define() function is basically used by programmers to create constant. Constants in PHP are very similar to variables and the only difference between both are the values of constants can not be changed once it is set in a program.
define() returns a Boolean value. It will return TRUE on success and FALSE on failure of the expression.
Syntax:
define(string $constant, mixed $value, bool $case_insensitive);Parameters:
- $constant: It is of String type that describes the name of the constant and is a required parameter.
- $value: It is of mixed type and it describes the Value of the constant and is required in parameter
- $case_insensitive: It is of a boolean type that describes whether the name of the constant can be case-sensitive or not and it is an optional parameter.
Return Value: This method returns a boolean value TRUE on success and FALSE on the failure of the expression.
Example 1: In this example, we have created a constant namely GREETINGS and its value is Hello GFG and the name of the constant is case-insensitive by using define() function.
PHP
<?php
define("GREETINGS","Hello GFG.", true);
Hello GFG.1 Hello GFG.2
Hello GFG.3
OutputHello GFG.
Example 2: In the below example, we have created a constant named as LANGUAGES which consist of an array as it’s value and the name of the constant is case-sensitive.
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.
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): boolParameter
- <?php define("NAMA", "budi"); echo NAMA; // budi 0 - string sebagai nama konstanta
- <?php define("NAMA", "budi"); echo NAMA; // budi 1 - nilai dapat berupa integer, float, string, boolean, null, atau array.
Nilai Kembalian
Fungsi define() mengembalikan nilai boolean <?php define("NAMA", "budi"); echo NAMA; // budi 3 jika konstanta berhasil dibuat, atau <?php define("NAMA", "budi"); echo NAMA; // budi 4 jika gagal.
Contoh
Contoh dibawah, kami membuat konstanta bernama <?php define("NAMA", "budi"); echo NAMA; // budi 5 yang nilainya adalah <?php define("NAMA", "budi"); echo NAMA; // budi 6, kemudian kami mencetaknya menggunakan <?php define("NAMA", "budi"); echo NAMA; // budi 7.
<?php define("NAMA", "budi"); echo NAMA; // budiSeperti yang disebutkan di atas, fungsi ini mengembalikan nilai <?php define("NAMA", "budi"); echo NAMA; // budi 8, 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 (<?php $nilaiKembalian = define("NAMA", "budi"); var_dump($nilaiKembalian); // bool(true) 4) diikuti dengan nilai dari konstanta tersebut.
Contoh:
<?php const NAMA = "budi"; // konstanta echo NAMA; // budiPredefined 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 $nilaiKembalian = define("NAMA", "budi"); var_dump($nilaiKembalian); // bool(true) 5 - versi PHP yang digunakan.
- <?php $nilaiKembalian = define("NAMA", "budi"); var_dump($nilaiKembalian); // bool(true) 6 - sistem operasi target build PHP.
- <?php $nilaiKembalian = define("NAMA", "budi"); var_dump($nilaiKembalian); // bool(true) 7 - nlai integer terbesar yang didukung PHP.
- <?php $nilaiKembalian = define("NAMA", "budi"); var_dump($nilaiKembalian); // bool(true) 8 - nilai integer terkecil yang didukung PHP.
- <?php $nilaiKembalian = define("NAMA", "budi"); var_dump($nilaiKembalian); // bool(true) 9 - ukuran integer dalam byte.
- <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 0 - nilai floating point positif terkecil yang dapat diwakili.
- <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 1 - 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:
- <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 2 - nomor baris saat ini.
- <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 3 - path lengkap dan nama file saat ini.
- <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 4 - path direktori saat ini, setara dengan <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 5.
- <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 6 - mengembalikan nama fungsi jika digunakan di dalam badan fungsi bernama, atau mengembalikan <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 7 jika di dalam fungsi tanpa nama (anonymous functions).
- <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 8 - mengembalikan nama kelas dan namespace jika digunakan di dalam kelas.
- <?php const NAMA = "budi"; // konstanta echo NAMA; // budi 9 - mengembalikan nama trait jika digunakan di dalam trait.
- define()0 - mengembalikan nama method jika digunakan di dalam method kelas.
- define()1 - mengembalikan namespace saat ini.
- define()2 - mengembalikan nama kelas termasuk namespace, ubah define()3 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.