Cara menggunakan php constant case-insensitive

bang mau tanya.. beberapa minggu yang lalu kan saya dikasih project na project nya beres terus pihak perusahan pake terus tuh project pake linux server.. nah ada beberapa yang error karena case sensitive .. nah kalau mau tau list di Codeigniter / php yang case sensitive apa aja dimana?? atau cara2 penulisan yang benar Contoh nama file harus awal huruf harus Huruf besar

Pada tutorial sebelumnya kita telah belajar tentang variabel pada php, pada kesempatan kali ini kita akan belajar tentang konstanta pada php.


Pengertian Konstanta

Dalam bahasa pemograman, Konstanta (constant) adalah suatu lokasi penyimpanan (dalam memory) yang berisikan nilai yang sifatnya tetap dan tidak bisa diubah sepanjang program berjalan.

Berbeda dengan variabel yang isi atau nilainya dapat diubah bahkan dihapus selama program berjalan, sebuah konstanta jika telah diberikan nilai, tidak dapat diubah lagi dalam kode program.

Cara Penulisan Konstanta Pada PHP

Pada PHP, konstanta dapat ditulis dengan dua cara, yaitu menggunakan keyword define dan const.

  1. Contoh penulisan konstanta dengan const.
    Cara menggunakan php constant case-insensitive
  2. Contoh penulisan konstanta dengan define.
    Cara menggunakan php constant case-insensitive

Terdapat beberapa ketentuan dalam penulisan konstanta pada PHP, yaitu:

  • Nama konstanta harus diawali dengan huruf atau underscore(_) dan nama konstanta hanya boleh berisi huruf, angka dan underscore.
  • Nama konstanta bersifat case sensitive untuk penggunaan keyword const, yang berarti membedakan antara huruf besar dan huruf kecil, sedangkan jika menggunakan define, secara default bersifat case sensitive, namun optional dapat di buat case insensitive.
  • Nilai konstanta tidak dapat di rubah.
  • Konstanta hanya dapat di isi nilai scalar, seperti boolean, int, float, atau string dan array tidak dapat di isi selain itu, seperti object (class).

Konstanta Sistem PHP (Predefined Constant)

Sama seperti variabel, PHP juga telah membuat beberapa konstanta bawaan yang telah didefinisikan dan tidak bisa di ubah nilainya. Namun karena banyaknya modul yang dapat ditambahkan kedalam PHP, Predefined Constant dalam PHP akan bertambah tergantung modul yang ada. Namun sebagai contoh, berikut adalah Predefined Constant dalam sistem inti PHP :
PHP_VERSION, PHP_MAJOR_VERSION, PHP_MINOR_VERSION, PHP_RELEASE_VERSION, PHP_VERSION_ID, PHP_EXTRA_VERSION, PHP_ZTS, PHP_DEBUG, PHP_MAXPATHLEN, PHP_OS, PHP_SAPI, PHP_EOL, PHP_INT_MAX, PHP_INT_SIZE, DEFAULT_INCLUDE_PATH, PEAR_INSTALL_DIR, PEAR_EXTENSION_DIR, PHP_EXTENSION_DIR, PHP_PREFIX, PHP_BINDIR, PHP_BINARY, PHP_MANDIR, PHP_LIBDIR, PHP_DATADIR, __LINE__ , __FILE__ , __DIR__ , __FUNCTION__ , __CLASS__ , __TRAIT__ , __METHOD__, __NAMESPACE__.

Daftar list Predefined Constant diatas saya ambil langsung dari manual PHP di http://php.net/manual/en/reserved.constants.php. Kebanyakan dari konstanta tersebut menyimpan nilai yang dapat membantu kita dalam membuat program PHP, khususnya untuk debugging.

Demikianlah tutorial tentang konstanta pada PHP. Silahkan bagikan atau share artikel ini jika dirasa ada yang membutuhkan.

Setelah sebelumnya kita membahas mengenai variabel dalam php pada kesempatan kali ini kita akan membahas mengenai konstanta pada PHP.

PHP menyediakan 2 jenis tempat penyimpanan nilai yaitu  variabel (variable) dan konstanta (constant), sehingga konstanta ini sendiri fungsinya sama seperti variabel yaitu menyimpan nilai, namun bedanya nilai yang disimpan konstanta tidak dapat diubah.

Karena sifat nilainya yang tetap, konstanta sering digunakan untuk data konfigurasi, seperti nama server, nama database, dll.

I. Cara Penulisan Konstanta Pada PHP

Pada PHP, konstanta dapat ditulis dengan dua cara, yaitu menggunakan keyword

<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
7 atau
<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
8:

  1. Contoh cara penulisan konstanta dengan 
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    7
    <?php
    define('URL_SITUS', 'www.jagowebdev.com');
    echo URL_SITUS; //www.jagowebdev.com

    Catatan: penulisan

    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    7 dapat digunakan dimana saja kecuali di dalam class, contoh:

    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
  2. Contoh penulisan konstanta dengan
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8
    <?php
    const URL_SITUS = 'www.jagowebdev.com';
    echo URL_SITUS; //www.jagowebdev.com

    Catatan: penulisan

    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8 dapat digunakan dimana saja, namun pada PHP versi < 5.3, hanya dapat digunakan di dalam kelas (class) contoh:

    <?php
    const URL_SITUS = 'www.jagowebdev.com'; // Valid pada PHP > 5.3
    class siteProp()
    {
    	const URL_SITUS = 'www.jagowebdev.com'; // Valid
    }
    ?>

Terdapat beberapa ketentuan dalam penulisan konstanta pada PHP, yaitu:

  1. Nama konstanta harus diawali dengan huruf atau underscore dan nama konstanta hanya boleh berisi huruf, angka dan underscore;
  2. Nama konstanta bersifat case sensitive untuk penggunaan keyword const, yang berarti membedakan antara huruf besar dan huruf kecil, sedangkan jika menggunakan define, secara default bersifat case sensitive, namun optional dapat di buat case insensitive;
  3. Konstanta hanya dapat diisi nilai scalar, seperti boolean, int, float, atau string dan array tidak dapat diisi selain itu, seperti object (class).

    Mulai PHP 7, Konstanta dapat diisi array, contoh penggunaannya ada dibagian: Contoh Penggunaan Konstanta Pada PHP.

  4. Nama konstanta bisa sama dengan keyword PHP seperti
    <?php
    const URL_SITUS = 'www.jagowebdev.com';
    echo URL_SITUS; //www.jagowebdev.com
    3, namun ketika memanggilnya harus menggunakan fungsi 
    <?php
    const URL_SITUS = 'www.jagowebdev.com';
    echo URL_SITUS; //www.jagowebdev.com
    4, misal:
    <?php
    define('echo', 'Saya Konstanta');
    echo constant('echo'); // Saya Konstanta
    ?>

lebih jauh mengenai perbedaan penggunaan

<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
7 dan
<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
8 akan disampaikan pada bagian akhir tulisan ini.

Cara menggunakan php constant case-insensitive
Cara menggunakan php constant case-insensitive

II. Tips Terkait Penggunaan Konstanta Pada PHP

Beberapa tips yang dapat digunakan untuk penulisan konstanta

  1. Gunakan nama konstanta yang mencerminkan nilainya;
  2. Gunakan huruf kapital semua, pisahkan antar kata dengan underscore, misal
    <?php
    const URL_SITUS = 'www.jagowebdev.com';
    echo URL_SITUS; //www.jagowebdev.com
    7;
  3. Hindari penggunaan nama yang diawali dengan dua underscore dan diakhiri dua underscore, seperti: __NAMA__, karena selain akan membuat rancu, juga akan berpotensi bentrok dengan konstanta bawaan PHP. Jika bentrok, maka tidak akan muncul pesan error tetapi nilai konstanta yang dihasilkan adalah nilai konstanta bawaan PHP;
  4. Untuk menghindari konflik dengan konstanta lain dapat dilakukan dengan menguji apakan konstanta tersebut telah ada, jika belum, maka kita definisikan konstanta tersebut. contoh:
    <?php
    $list = array('SITE_NAME' => 'JagoWebDev', 'SITE_URL' => 'www.jagowebdev.com');
    foreach($list as $const_name => $const_val)
    {
    	if (!defined($const_name))
    	{
    		define($const_name, $const_val);
    	}
    }
    
    echo SITE_URL; // www.jagowebdev.com
    ?>

III. Scope

Konstanta bersifat global, sehingga konstanta yang telah di deklarasikan dapat digunakan dimanapun baik di dalam fungsi maupun diluar fungsi.

IV. Perbedaan Penggunaan define dan const

Sejak versi 5.3, PHP mengijinkan penulisan konstanta dengan keyword

<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
8 digunakan di luar class.
<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
7 dieksekusi saat program run time, sedangkan
<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
8 pada saat compile kode program, sehingga memunculkan beberapa perbedaan, berikut beberapa perbedaan tersebut:

  1. <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    7 dapat di deklarasikan pada conditional statement, sedangkan
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8 tidak, contoh:
    <?php
    if (!defined('NAMA_SITUS'))
    	define('NAMA_SITUS', 'Agus PH'); // Valid
    
    if (defined('URL_SITUS'))
    	const URL_SITUS = 'www.agusph.com'; // Error
    ?>
  2. <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    7 dapat bernilai expresi seperti operasi aritmatika atau penggabungan string (concantenate), sedangkan
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8 tidak, namun mulai PHP 5.6
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8 juga dapat bernilai exspresi. Contoh:
    <?php
    define('MAX_EXEC', 60 * 3); // Valid
    define('MAX_TIME', MAX_EXEC + 360); // Valid
    define('NAMA_LENGKAP', NAMA_DEPAN . NAMA_BELAKANG) // Valid
    const MAX_EXEC = 60 * 3; // Valid mulai PHP 5.6
    ?>
  3. <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    7 dapat di buat menjadi case insensitive, sedangkan
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8 tidak. contoh:
    <?php
    define('MAX_EXEC', 180, true); 
    echo MAX_EXEC; // 180
    echo max_exec; // 180
    const MAX_TIME = 180;
    echo MAX_TIME; // 180
    echo max_time; // Error
    ?>
  4. <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8 hanya menerima plain text untuk nama, sedangkan
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    7 tidak (bisa variabel), contoh seperti syntax sebelumnya:
    <?php
    $list = array('SITE_NAME' => 'Agus PH', 'SITE_URL' => 'www.agusph.com');
    foreach($list as $const_name => $const_val)
    {
    	if (!defined($const_name))
    	{
    		define('CFG_' . $const_name, $const_val);
    	}
    }
    ?>
  5. Karena dijalankan pada saat compile,
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8 sedikit lebih cepat daripada define, perbedaan terasa jika penggunaan konstanta dalan jumlah besar.
  6. Penggunaakn
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8 dirasa lebih bagus dari segi estetika penulisan, karena mengikuti pola deklarasi yang umum digunakan (menggunakan tanda =), disamping juga konsisten dalam penulisan baik didalam class maupun diluar class dan dalam penggunaan namespace.
  7. Semoga kedepan
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    8 akan memiliki fitur sama dengan
    <?php
    class siteProp()
    {
    	define('URL_SITUS', 'www.jagowebdev.com'); // Error
    	public function getProp()
    	{
    		// code
    	}
    }
    ?>
    7.

V. Konstanta Pada PHP (built-in)

PHP sendiri menyediakan beberapa konstanta yang bisa langsung kita gunakan, konstanta ini dibuat oleh berbagai ekstensi, sehingga hanya tersedia ketika ekstensi tersebut tersedia baik pada saat loading atau saat kompilasi. beberapa diantaranya:

Nama KonstantaKeterangan

<?php
define('echo', 'Saya Konstanta');
echo constant('echo'); // Saya Konstanta
?>
4Untuk mendapatkan baris keberapa dari kode, dihitung dari paling atas. contoh:
<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
0
<?php
define('echo', 'Saya Konstanta');
echo constant('echo'); // Saya Konstanta
?>
5Untuk mendapatkan full path dari file beserta nama filenya. contoh:
<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
1
<?php
define('echo', 'Saya Konstanta');
echo constant('echo'); // Saya Konstanta
?>
6Untuk mendapatkan full path direktori dari file. Contoh:
<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
2
<?php
define('echo', 'Saya Konstanta');
echo constant('echo'); // Saya Konstanta
?>
7Mendapatkan nama dari fungsi. Contoh:
<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
3
<?php
define('echo', 'Saya Konstanta');
echo constant('echo'); // Saya Konstanta
?>
8Mendapatkan nama dari class termasuk namespace (PHP 5.3). contoh:
<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
4

VI. Contoh Penggunaan Konstanta Pada PHP

Mulai PHP versi 7, kita dapat mendefinisikan konstanta dengan array. Penggunaan array akan mempermudah kita dalam mengelompokkan jenis konstanta. Contoh kali ini kita akan menggunakan konstanta sebagai konfigurasi server:

file

<?php
define('echo', 'Saya Konstanta');
echo constant('echo'); // Saya Konstanta
?>
9

<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
5

file

<?php
$list = array('SITE_NAME' => 'JagoWebDev', 'SITE_URL' => 'www.jagowebdev.com');
foreach($list as $const_name => $const_val)
{
	if (!defined($const_name))
	{
		define($const_name, $const_val);
	}
}

echo SITE_URL; // www.jagowebdev.com
?>
0

<?php
class siteProp()
{
	define('URL_SITUS', 'www.jagowebdev.com'); // Error
	public function getProp()
	{
		// code
	}
}
?>
6

Demikian pembahasan mengenai konstanta pada PHP, semoga bermanfaat dan selamat mencoba.

Subscibe Now

Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com

Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun.