Cara menggunakan const vs static php

Cara menggunakan const vs static php

Pertanyaan yang diberi tag «constants»

Konstanta dalam pemrograman adalah definisi yang nilainya tetap di seluruh pelaksanaan program. Literal dalam sebagian besar bahasa adalah konstanta, misalnya. Dalam gaya pemrograman yang secara transparan transparan, semua definisi adalah konstan. Area penyimpanan data yang memenuhi syarat (objek, bidang, variabel, parameter) adalah yang "tidak pernah berubah", sehingga memungkinkan optimisasi generator kode tambahan dan pemeriksaan statis tambahan atas kebenaran program.

Selamat datang di warungbelajar, masih dalam seri tutorial PHP, dalam tutorial kali ini kita akan membahas mengenai konstanta dalam PHP, secara sederhana konstanta digunakan untuk mendeklarasikan nilai di PHP, dan nilai tersebut tidak bisa dirubah (ditimpa oleh nilai lain).

Dalam pemrograman komputer, ‘Konstanta‘ adalah identifier yang terkait nilai tidak bisa biasanya diubah oleh program selama pelaksanaannya (meskipun dalam beberapa kasus ini dapat dielakkan, misalnya menggunakan self-modifying code). Banyak bahasa pemrograman membuat perbedaan sintaksis eksplisit antara simbol konstan dan variable. (Wikipedia)

Jika ditutorial sebelumnya kita sudah membahas mengenai variabel yang digunakan untuk menyimpan sebuah nilai, konstanta ini juga berfungsi untuk menyimpan sebuah nilai, tapi perbedaannya adalah nilai dari variabel dapat diubah dan dihapus selama program berjalan, tetapi konstanta ini jika telah diberikan nilai, maka nilai tersebut tidak dapat dirubah oleh kode program, konstanta biasanya digunakan untuk mendeklarasikan nilai yang bersifat tetap.

Baik kita langsung saja belajar mengenai beberapa aturan penulisan dari konstanta di PHP.

Cara mendefinisikan Konstanta dalam PHP

Untuk mendefinisikan konstanta dalam PHP, anda dapat menggunakan 2 cara yaitu :

  1. Menggunakan keyword const
  2. Menggunakan function define
Menggunakan keyword const

Untuk cara pertama dengan menggunakan const, cara pembuatannya sama seperti pembuatan variabel, hanya saja kita gunakan perintah const, untuk contohnya adalsh sebagai berikut :

<?php

   constweb="www.warungbelajar.com";

   echoweb;// akan menampilkan www.warungbelajar.com

?>

Menggunakan fungsi define

untuk cara kedua anda bisa menggunakan fungsi define, untuk fungsi ini memiliki 2 parameter yaitu :

  • nama konstanta
  • value konstanta

untuk contoh pembuatan konstanta dengan menggunakan fungsi define adalah sebagai berikut :

<?php

   define("WEB","www.warungbelajar.com");

   echoWEB;  // akan menampilkan tulisan www.warungbelajar.com

?>

Aturan penulisan nama Konstanta

Aturan penulisan dari nama konstanta memiliki konsep yang mirip dengan penulisan variabel, antara lain adalah :

  • Karekter pertama dari nama konstanta hanya boleh menggunakan huruf dan underscore ( _ ), karekter pertama tidak boleh menggunakan angka.
  • Karakter kedua dan seterusnya bisa menggunakan huruf, angka, underscore ( _ )
  • Nama konstanta tidak boleh mengandung karakter khusus seperti  #,*, atau &
  • Nama konstanta bersifat sensitive case (kecuali menggunakan define hal ini akan dijelaskan lebih lanjut dibagian bawah), yang artinya nama konstanta yang menggunakan huruf kecil dan huruf besar akan dinyatakan berbeda, nama konstanta email dan Email akan dianggap berbeda, untuk penulisan dari nama konstanta ini programmer banyak yang menggunakan huruf besar, agar membedakan antara konstanta dan variabel.
  • Hindari penggunaan nama konstanta yang diawali dan diakhiri oleh dua tanda underscore (_), contohnya __NAMAKONSTANTA__, hal tersebut berpotensi mengalami bentrok dengan konstanta bawaan PHP, jika bentrok dengan konstanta bawaan PHP, tidak akan muncul error tetapi nilai yang dihasilkan adalah nilai konstanta bawaan PHP.

Perbedaan Penggunaan define dan const

Setelah anda ketahui dibagian sebelumnya untuk membuat konstanta bisa menggunakan 2 cara yaitu define dan const, kali ini kita akan belajar apa perbedaan ketika membuat konstanta dengan perintah define dan const, kapan define atau const digunakan ? kita akan mulai untuk membahasnya di bagian ini :

perintah define untuk deklarasi konstanta dapat digunakan di conditional statement, tetapi perintah const tidak

untuk lebih memahami silahkan perhatikan skrip dibawah ini :

<?php

if(!defined('WEB')){

define('WEB','https://warungbelajar.com');// perintah ini valid

}

if (defined('WEB')){

constWEB='https://warungbelajar.com';// perintah ini akan error //Parse error: syntax error, unexpected 'const' (T_CONST)

}

?>

Keterangan :

  • ketika menggunakan keyword const (Line 6) untuk membuat konstanta pada conditional statement akan menampilkan error, tetapi untuk bagian define (Line 3) tidak error, artinya di conditional statement gunakan define bukan const
define bisa bernilai expresi seperti operator aritmatika dan penggabungan string, tetapi untuk perintah const dapat melakukan di versi php 5.6 keatas

untuk lebih memahami silahkan perhatikan skrip dibawah ini :

<?php

define('DETIK_SATU_JAM',60*60*60);// Valid

define('JAM'," 24 "."JAM ");

const DETIK_SATU_MENIT=60*60;// Valid jika menggunakan versi php mulai PHP 5.6

constBULAN=" 30 "." HARI";

echoDETIK_SATU_JAM; //menampilkan 216000

echoJAM;//menampilkan 24 JAM

echo"<br/>";

echoDETIK_SATU_MENIT;//menampilkan 360030

echoBULAN;//menampilkan 30 HARI

?>

Keterangan :

  • Line 7 menampilkan  216000 karena konstanta DETIK_SATU_JAM menyimpan hasil perkalian 60 * 60 * 60
  • Line 8 menampilkan 24 JAM karena konstanta JAM menyimpan penggabungan string 24 dan JAM
  • Line 10 menampilkan 3600 karena konstanta DETIK_SATU_MENIT menyimpan hasil perkalian 60 * 60
  • Line 11 menampilkan 30 HARI karena konstanta BULAN menyimpan penggabungan string 30 dan BULAN
define bisa bersifat case insensitive, tetapi const tidak

Seperti dijelaskan diawal bahwa konstanta bersifat case sensitive (penggunaan huruf besar dan kecil, akan dinyatakan berbeda), tatapi deklarasi dengan define bisa bersifat case insensitive (huruf besar dan kecil akan dianggap sama), tetapi ini hanya berlaku di fungsi define, perintah const tidak bisa.

untuk lebih memahami silahkan perhatikan skrip dibawah ini  :

<?php

define("WEB","https://warungbelajar.com",true);

constEMAIL="";

echoweb;

echo"<br/>";

echoemail;//Warning: Use of undefined constant email - assumed 'email' (this will throw an Error in a future version of PHP)

?>

keterangan :

  • jika file tersebuat diakses, pada Line 4 akan menampilkan tulisan https://warungbelajar.com, untuk menggunakan case insensitive anda harus menambahkan parameter ke – 3 dari define dengan value true (perhatikan line 2)
  • pada line 6 akan menampilkan error “Use of undefined constant email – assumed ’email’ (this will throw an Error in a future version of PHP)” karena kontanta email tidak dikenal, perintah const untuk deklarasi konstanta  akan bersifat case sensitive
define untuk nama konstanta dan value bisa menggunakan variabel, sedangkan perintah const hanya dapat menggunakan plain text

untuk lebih memahami, perhatikan contoh dibawah ini :

<?php

$nama_konstanta_1="WEB1";

$nama_konstanta_2="WEB2";

$email="https://warungbelajar.com";

define($nama_konstanta_1,$email);

echoWEB1;

const$nama_konstanta_2=$email;

echoWEB2;

?>

Keterangan :

  • jika diakses file tersebut akan menampilkan error Parse error: syntax error, unexpected ‘$nama_konstanta_2’ (T_VARIABLE), expecting identifier (T_STRING), hal tersebut karena pada Line 9 kita menuliskan nama konstantanya dan valuenya berupa variabel bukan plain text.

Nilai dari konstanta tidak dapat diganti

Seperti yang telah disinggung diawal, jika nilai dari konstanta yang telah dideklarasikan tidak bisa diganti (ditimpa dengan nilai baru), sebagai contoh perhatikan skrip dibawah ini :

<?php

define("WEB","https://warungbelajar.com");

echoWEB;  echo"<br />";// menampilkan https://warungbelajar.com

define("WEB", "http://warungbelajar.net");

echoWEB;// menampilkan https://warungbelajar.com

?>

Keterangan :

  • ketika file tersebut dibuka maka perintah echo tetap menampilkan tulisan https://warungbelajar.com
  • hal tersebut dikarenakan konstanta WEB yang sudah dideklarasikan nilainya sehingga tidak bisa dirubah isinya, meskipun kita mencoba mendeklarasikan ulang pada Line 4

Konstanta hanya dapat berisi tipe data tertentu

Berbeda dengan variabel, konstanta hanya dapat berisi beberapa tipe data contohnya seperti booleanintegerfloatstring, dan array (berlaku di PHP 7).

perhatikan contoh dibawah ini :

<?php

define('SITE','https://warungbelajar.com');

define('DB',['host'=>'localhost',

'port'=>'3306',

'db_name'=>'db_warungbelajar',

'user'=>'root',

'password'=>'12345678'

]

);

echo DB['host'];//menampilkan localhost

?>

Keterangan :

  • ketika file diakses maka yang tampil adalah tulisan localhost, karena konstanta DB pada index host adalah localhost

Hindari nama Konstanta yang sama dengan nama konstanta bawaan PHP (Predefined Constant)

Anda perlu menghindari penamaan konstanta yang sama dengan nama konstanta bawaan PHP (Prefinew Constant), karena seperti aturan sebelumnya nilai konstanta tidak bisa dirubah, begitu juga konstanta bawaan PHP, jadi hindari penggunaan nama konstanta yang sama dengan nama konstanta bawaan PHP.

nah untuk daftar konstanta yang dimiliki php antara lain :

  • 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_OS_FAMILY
  • PHP_SAPI
  • PHP_EOL
  • PHP_INT_MAX
  • PHP_INT_MIN
  • PHP_INT_SIZE
  • PHP_FLOAT_DIG
  • PHP_FLOAT_EPSILON
  • PHP_FLOAT_MIN
  • PHP_FLOAT_MAX
  • DEFAULT_INCLUDE_PATH
  • PEAR_INSTALL_DIR
  • PEAR_EXTENSION_DIR
  • PHP_EXTENSION_DIR
  • PHP_PREFIX
  • PHP_BINDIR
  • PHP_BINARY
  • PHP_MANDIR
  • PHP_LIBDIR
  • PHP_DATADIR
  • PHP_SYSCONFDIR
  • PHP_LOCALSTATEDIR
  • PHP_CONFIG_FILE_PATH
  • PHP_CONFIG_FILE_SCAN_DIR
  • PHP_SHLIB_SUFFIX
  • PHP_FD_SETSIZE
  • E_ERROR
  • E_WARNING
  • E_PARSE
  • E_NOTICE
  • E_CORE_ERROR
  • E_CORE_WARNING
  • E_COMPILE_ERROR
  • E_COMPILE_WARNING
  • E_USER_ERROR
  • E_USER_WARNING
  • E_USER_NOTICE
  • E_RECOVERABLE_ERROR
  • E_DEPRECATED
  • E_USER_DEPRECATED
  • E_ALL
  • E_STRICT
  • __COMPILER_HALT_OFFSET__
  • TRUE
  • FALSE
  • NULL

Daftar list Predefined Constant diatas kita ambil dari dokumentasi resmi php, silahkan mengakses alamat url : http://php.net/manual/en/reserved.constants.php

Baik sekian dulu teman – teman pembahasan mengenai konstanta didalam php serta aturan dari penulisan Konstanta di PHP, jadi kesimpulannya konstanta memiliki konsep yang sama seperti variabel, yang membedakan nilai di konstanta tidak bisa dirubah jika sudah diberikan nilai awal.

jadi jika anda membutuhkan variabel yang nilainya tidak bisa ditimpa (diganti) oleh nilai lain, maka anda bisa menggunakan konstanta, sekian dulu pembahasan mengenai konstanta di dalam PHP, jika ada yang ingin didiskusikan silahkan di kolom komentar, sampai jumpa di tutorial php selanjutnya.

ANDA INGIN SERIUS BELAJAR PEMROGRAMAN PHP ?

Seperti yang anda ketahui bahwa saat ini skill di bidang pemrograman sangatlah dibutuhkan, salah satunya adalah pemograman PHP.
Untuk anda yang ingin serius belajar pemrograman PHP, Warung Belajar Memiliki Beberapa Paket Tutorial yang bisa membantu anda dalam belajar Pemrograman PHP, dari mulai step – step dasar hingga mampu membuat aplikasi berbasis web dengan menggunakan PHP.

Paket Tutorial ini berisi video tutorial belajar pemrograman berbahasa indonesia, cocok sekali untuk anda yang sedang belajar pemrograman PHP, bahkan untuk orang awam sekalipun.

Paket Tutorial ini juga dilengkapi dengan study kasus yang akan mempermudah pemahaman anda dalam belajar pemrograman, Mari berinvestasi untuk menambah skill dalam menguasai Pemrograman PHP

  • Cara menggunakan const vs static php

    Tutorial Seminggu Menguasai PHP Dan MySQL

    Rp80,000 Add to cart
  • Cara menggunakan const vs static php

    Tutorial HTML White Box – Panduan Belajar HTML Lengkap

    Rp70,000Add to cart
  • Cara menggunakan const vs static php

    Tutorial Web Programming Black Box – Tutorial Belajar HTML, CSS, Bootstrap 4, PHP OOP, dan MySQL – Study Kasus Membuat Aplikasi Sistem Management Stok Barang

    Rp120,000Add to cart
  • Cara menggunakan const vs static php

    Tutorial Membuat Aplikasi Dengan Codeigniter, Javascript Dan Ajax Jquery

    Rp95,000 Add to cart
  • Cara menggunakan const vs static php

    Tutorial Membangun Layanan SMS Gateway Berbasis Client Server

    Rp145,000Add to cart
  • Cara menggunakan const vs static php

    Tutorial Membuat Aplikasi Dinamis Dengan HTML CSS Boostrap PHP Dan MySQL

    Rp120,000 Add to cart
  • Cara menggunakan const vs static php

    TUTORIAL MEMBANGUN APLIKASI BERBASIS WEB DENGAN PHP MYSQL DAN BOOTSTRAP

    Rp95,000Add to cart
  • Cara menggunakan const vs static php

    Tutorial Tips Dan Trik Aplikatif Master PHP

    Rp85,000Add to cart