Pada pertemuan sebelumnya di seri tutorial PHP tingkat menengah, kita telah mempelajari tentang ruang lingkup variabel mulai dari variabel global, lokal, dan statis.
Selain 3 jenis itu, di dalam PHP sebenarnya masih terdapat satu jenis variabel yang lain: yaitu variabel super global.
Apa itu Variabel Super Global di PHP?
Variabel super global di PHP adalah variabel bawaan yang bersifat global. Variabel bawaan yang dimaksud adalah: variabel yang sudah otomatis ada tanpa perlu kita definisikan sendiri. Dan ia bersifat global dalam artian bisa kita akses dari mana pun dan kapan pun.
Variabel super global menyimpan banyak sekali data penting dan juga bermanfaat yang bisa kita gunakan dalam menyelesaikan projek yang sedang kita kerjakan.
Setidaknya terdapat 9 variabel super global di PHP. Dan pada tutorial ini, kita hanya akan mempelajari dasar-dasarnya saja dan mengambil beberapa contoh ringan jika diperlakukan.
Ada pun untuk detil masing-masing penggunaannya, insyaallah akan kita pelajari pada seri tutorial PHP berikutnya.
1. Variabel $_SERVER
Variabel yang pertama dan utama adalah variabel $_SERVER
. Ia adalah sebuah array asosiatif yang menyediakan berbagai macam informasi tentang request yang ditangkap oleh server. Data yang dimuat berupa headers, paths, lokasi skrip, dan sebagainya.
Nilai yang tersimpan pada variabel $_SERVER
disediakan oleh web server, oleh karena itu tidak ada jaminan khusus bahwa setiap web server yang kita gunakan akan memberikan semua data-data standar yang ada.
Untuk bisa mengetahui nilai apa saja yang tersedia pada variabel $_SERVER
, kita bisa mengeksekusi perintah berikut:
<?php
echo json_encode($_SERVER);
Berikut ini output yang saya dapatkan setelah menginstall ekstensi JSON View pada google chrome yang saya gunakan:
Sebagai penjelasan, pada tabel berikut ini adalah beberapa contoh data pada variabel $_SERVER
yang mungkin akan sering anda butuhkan:
Tabel detail variabel $_SERVER
No | Variabel dan Deskripsi |
---|---|
1 |
$_SERVER['PHP_SELF']
Berisi informasi nama file yang sedang dieksekusi, nama file diambil berdasarkan dari dokumen root |
2 |
$_SERVER['SERVER_ADDR']
Alamat IP server dari file yang sedang dieksekusi. |
3 |
$_SERVER['SERVER_NAME']
Hostname dari server dari file php yang sedang dieksekusi. Hostname biasanya adalah nama PC yang terlihat di dalam jaringan. Jika skrip PHP dijalankan di atas Virtual Host, maka nama virtual host tersebut akan dijadikan sebagai server name |
4 |
$_SERVER['SERVER_PROTOCOL']
Ini adalah protokol komunikasi yang sedang berjalan. Apakah HTTP atau HTTPS. Misal: 'HTTP/0.1' |
5 |
$_SERVER['REQUEST_METHOD']
Berisi jenis metode request dari file PHP yang sedang dieksekusi. Misalkan: |
6 |
$_SERVER['QUERY_STRING']
Akan mengembalikan query string dari file atau skrip PHP yang sedang dieksekusi. Misalkan user mengakses halaman |
7 |
$_SERVER['DOCUMENT_ROOT']
Nama direktori root dari dokumen/file PHP yang sedang dieksekusi. Hasil yang dikembalikan berdasarkan dari pengaturan server. |
8 |
$_SERVER['HTTP_HOST']
Mengembalikan konten dari host, seperti misalnya: header (jika memang ada). |
9 |
$_SERVER['HTTP_REFERER']
Halaman url yang menjadi referensi ke halaman yang sedang dieksekusi. Jika tidak ada, nilainya kosong. |
10 |
$_SERVER['HTTP_USER_AGENT']
Variabel ini berisi informasi dari user yang sedang melakukan request konten: mulai dari browser yang digunakan, bahasa, hingga OS. Contoh nilai dari variabel ini adalah: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586 |
11 |
$_SERVER['REMOTE_ADDR']
Berisi alamat IP dari user yang sedang mengakses halaman web PHP |
12 |
$_SERVER['SCRIPT_FILENAME']
Nama path absolut dari file yang sedang dieksekusi. |
13 |
$_SERVER['REQUEST_URI']
Alamat uri dari file yang sedang dieksekusi. Misalkan: "/php/halo-dunia". |
2. Variabel $_GET
Variabel $_GET
adalah array asosiatif yang berisi nilai dari query string.
Misalkan kita memiliki file halo-dunia.php
sebagaimana berikut:
<?php
$nama = @$_GET['nama']; # tanda @ agar tidak ada peringatan error ketika key-nya kosong
$usia = @$_GET['usia']; # tanda @ agar tidak ada peringatan error ketika key-nya kosong
echo "Halo {$nama}! Apakah benar anda berusia {$usia} tahun?";
Jika kita mengakses file tersebut dengan query string http://localhost/halo-dunia.php?nama=Budi&usia=20
, maka output yang akan kita dapatkan adalah:
Halo Budi! Apakah benar anda berusia 20 tahun?
3. Variabel $_POST
Variabel $_POST
mirip dengan variabel $_GET
. Hanya saja data yang di-passing tidaklah melalui query string pada URL, akan tetapi pada body request. Dan request method yang dilakukan haruslah dengan metode POST. Insyaallah pembahasan tentang $_GET
dan $_POST
akan kita sendirikan pada pertemuan-pertemuan yang akan datang.
4. Variabel $_SESSION
Variabel $_SESSION
merupakan array asosiatif yang menyimpan data sesi pengguna.
Variabel ini bisa kita gunakan untuk menyimpan user yang login pada satu sesi tertentu. Atau juga bisa digunakan untuk menyimpan data cart pada toko online.
Secara default, umur sesi pada PHP adalah 1440 detik atau 24 menit.
5. Variabel $_COOKIE
Mirip dengan $_SESSION
, variabel $_COOKIE
bisa kita gunakan untuk menyimpan suatu data yang berkaitan dengan user: misal informasi login, informasi cart pada toko online, dan sebagainya.
Bedanya, cookie adalah file berukuran kecil yang disimpan pada browser pengguna. File tersebut akan senantiasa dikirim setiap kali browser mengirimkan request ke server.
Umur cookie umumnya lebih panjang dari pada umur sesi.
6. Variabel $_REQUEST
Variabel $_REQUEST
adalah array asosiatif yang menyimpan gabungan nilai dari variabel $_GET
, $_POST
, dan $_COOKIE
yang kesemuanya berhubungan dengan data yang dikirim bersamaan dengan request user.
7. Variabel $_FILES
Variabel $_FILES
adalah array asosiatif yang menyimpan data file yang diunggah pengguna dalam satu request dengan metode POST atau PUT.
8. Variabel $_ENV
Variabel $_ENV
adalah array asosiatif yang berisi data tentang environment yang skrip PHP berjalan di atasnya. Variabel $_ENV
disediakan oleh shell yang menjalankan skrip PHP, sehingga nilainya bisa bervariasi tergantung dengan sistem operasi yang digunakan.
Di dalam framework PHP modern seperti laravel, variabel $_ENV
juga digunakan untuk menyimpan hal-hal yang berkaitan dengan environment seperti nama database, password database, dan nilai lainnya untuk melakukan konfigurasi framework.
9. Variabel $GLOBALS
Variabel $GLOBALS
adalah array asosiatif yang menyimpan semua variabel global yang didefinisikan saat program dijalankan. Kita telah membahas tentang variabel ini dalam pembahasan ruang lingkup variabel.
Pembahasan Selanjutnya
Sejauh ini kita telah mempelajari ruang lingkup variabel dan variabel super global pada PHP. Pada pembahasan selanjutnya insyaallah kita masih akan membahas hal-hal yang berkaitan dengan variabel: yaitu tipe data casting. Tipe data casting adalah konversi tipe data satu ke tipe data yang lain.
Bagaimana caranya? Nantikan pertemuan selanjutnya di seri tutorial php tingkat menengah ini.
Terima kasih banyak!