PEMBAHASAN Variabel
Dasar-dasar
Variabel dalam PHP ditandai dengan karakter dollar kemudian diikuti dengan nama variabelnya sendiri. Nama variabel membedakan antara huruf kecil dan besar (case-sensitive).
Nama variabel mengikutai aturan yang sama dengan label yang lain dalam PHP. Nama variabel yang diperbolehkan dimulai dengan huruf atau garis-bawah, kemudian diikuti dengan huruf, angka atau garis-bawah. Dalam regular expression, akan dituliskan sebagai : ’[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*’
Catatan: Untuk keperluan kita di sini yang dimaksud dengan huruf adalah a-z, A-Z, dan karakter ASCII dari 127 hingga 255 (0x7f-0xff).
1 2 $var = "Bob"; 3 $Var = "Joe"; 4 echo "$var, $Var"; // menghasilkan "Bob, Joe" 5 6 $4site = ’not yet’; // tidak boleh; dimulai dengan angka 7 $_4site = ’not yet’; // boleh; dimulai dengan garis-bawah 8 $täyte = ’mansikka’; // boleh; ’ä’ adalah ASCII 228. 9 |
PHP4 memberikan cara lain untuk mengisikan nilai ke variabel: assign by reference. Artinya, variabel yang baru merujuk (dengan kata lain, "menjadi alias untuk" atau "menunjuk pada") variabel asal. Perubahan pada variabel yang baru akan mempengaruhi variabel asal, dan sebaliknya. Ini juga berarti tidak ada proses penyalinan; sehingga pengisian variabel bekerja lebih cepat. Akan tetapi perlu diingat peningkatan kecepatan hanya dapat diamati pada pengulangan yang banyak atau pada pengisian array atau objek yang besar.
Untuk mengisikan dengan rujukan, cukup menuliskan karakter ampersand (&) di awal variabel yang akan diisikan (variabel asal). Sebagai contoh, akan mencetak output 'Nama saya Bob' dua kali.
1 2 <?php 3 $foo = 'Bob'; // Mengisikan kata 'Bob' ke variabel $foo 4 $bar = &$foo; // Merujuk pada $foo melalui $bar. 5 $bar = "Nama saya $bar"; // Menimpa variabel $bar dengan nilai yang baru 6 echo $foo; // $foo akan ditimpa juga. 7 echo $bar; 8 ?> 9 |
Satu masalah penting yang harus diingat adalah, hanya nama variabel yang bisa diisikan dengan rujukan.
1 2 <?php 3 $foo = 25; 4 $bar = &$foo; // Pengisian yang diperbolehkan. 5 $bar = &(24 * 7); // Tidak boleh!; tidak merujuk pada nama variabel. 6 7 function test() { 8 return 25; 9 } 10 11 $bar = &test(); // Tidak benar; karena tes() adalah fungsi. 12 ?> 13 |
Variabel-variabel Terdefinisi
PHP menyediakan banyak variabel yang telah terdefinisi untuk semua skrip yang dijalankannya. Banyak dari variabel-variabel ini, tidak dapat didokumentasikan sepenuhnya karena sangat tergantung pada server yang dijalankan, versi dan setup server, dan faktor yang lainnya. Beberapa variabel tidak bisa didapatkan jika PHP dijalankan pada mode perintah baris (command-line).Tanpa melihat faktor-faktor tersebut, disini diberikan variabel terdefinisi yang bisa dipakai jika PHP3 berjalan sebagai module server Apache.
Untuk mendapatkan daftar variabel terdefinsi (dan informasi yang lain), silahkan lihat (dan gunakan) phpinfo().
Catatan: Daftar berikut hanyalah petunjuk sederhana mengenai variabel terdefinisi yang anda harapkan dapat anda pakai dalam skrip anda.
Variable-variabel dari Apache
Variabel-variabel ini dibuat oleh webserver Apache. Jika anda menjalankan webserver yang lain, tidak ada jaminan ia menyediakan variabel-variabel yang sama; mungkin ia tidak menyediakan beberapa variabel tapi menyediakan variabel lain yang tidak disebutkan disini. Boleh dikatakan, kebanyakan dari variabel-variabel ini disebutkan di spesifikasi CGI 1.1 jadi masih ada harapan untuk bisa memakainya.Sebagai catatan, beberapa dari variabel-variabel ini bisa dipakai (atau punya arti) jika PHP dijalankan dari perintah baris.
- GATEWAY_INTERFACE
- Revisi spesifikasi CGI yang digunakan oleh server, misalnya; i.e. 'CGI/1.1'.
- SERVER_NAME
- Nama host server dimana skrip dijalankan. Jika skrip dijalankan pada virtual host, maka variabel ini akan berisi nilai yang didefinisikan untuk virtual host tersebut.
- SERVER_SOFTWARE
- String identifikasi string, diletakkan di dalam header ketika menangapi permintaan.
- SERVER_PROTOCOL
- Nama dan revisi protokol informasi darimana permintaan dilakukan; misalnya 'HTTP/1.0'.
- REQUEST_METHOD
- Metode permintaan yang dipakai ketika mengakses halaman; misalnya 'GET', 'HEAD', 'POST', 'PUT'.
- UERY_STRING
- String permintaan, jika ada, darimana halaman diakses.
- DOCUMENT_ROOT
- Direktori dokumen root dimana didalamnya berisi skrip yang sedang dilaksanakan, seperti didefinisikan di file konfigurasi server.
- HTTP_ACCEPT
- Berisi Accept:header permintaan, jika ada.
- HTTP_ACCEPT_CHARSET
- Berisi Accept-Charset: header permintaan, jika ada. Contoh: 'iso-8859-1,*,utf-8'.
- HTTP_ENCODING
- Berisi Accept-Encoding: header permintaan, jika ada. Contoh: 'gzip'.
- HTTP_ACCEPT_LANGUAGE
- Berisi Accept-Language: header permintaan, jika ada. Contoh: 'en'.
- HTTP_CONNECTION
- Berisi Connection: header permintaan, jika ada. Contoh: 'Keep-Alive'.
- HTTP_HOST
- Berisi Host: header permintaan, jika ada.
- HTTP_REFERER
- Alamat halaman (jika ada) yang diberikan oleh browser pada halaman yang aktif. Variabel ini diset oleh browser pengguna, tidak semua browser memberikan variabel ini.
- HTTP_USER_AGENT
- Berisi User_Agent: header permintaan, jika ada. String ini menunjukkkan software browser yang dipakai untuk melihat halaman yang sedang aktif; misalnya; Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Anda dapat memakai nilai ini dengan get_browser() untuk menyesuaikan kemampuan browser pemakai.
- REMOTE_ADDR
- Alamat IP darimana pengguna melihat halaman saat ini.
- REMOTE_PORT
- Port yang dipakai oleh komputer pemakai untuk berkomunikasi dengan server web.
- SCRIPT_FILENAME
- Nama path absolut dari skrip yang sedang dilaksanakan.
- SERVER_ADMIN
- Nilai yang diberikan untuk direktive SERVER_ADMIN (Apache) dalam file konfigurasi server web. Jika skrip dijalankan pada host virtual, variabel ini akan berisi nilai yang diberikan untuk host virtual tersebut.
- SERVER_PORT
- Port mesin server yang dipakai oleh server web untuk berkomunikasi. Untuk setup default, akan berisi '80'; jika menggunakan SSL, misalnya, nilai ini akan diubah menjadi nomor port berapa saja yang didefinisikan untuk port HTTP aman.
- SERVER_SIGNATURE
- String ini berisi versi server dan nama host virtual yang ditambahkan pada halaman yang dihasilkan server, jika diaktifkan.
- PATH_TRANSLATED
- Path dari sript yang sedang berjalan berdasarkan Sistem filenya-(bukan dokumen root); setelah server mengerjakan pemetaan virtual ke real. (Catatan Penerjemah: ini berhubungan sistem file yang dipakai; misalnya untuk linux kita memakai notasi /www/htdocs sedangkan untuk windows/dos kita memakai \www\htdocs).
- SCRIPT_NAME
- Berisi path skrip yang sedang berjalan. Ini sangat berguna untuk halaman-halaman yang perlu merujuk pada pada diri mereka sendiri.
- REQUEST_URI
- URI yang diberikan untuk mengakses halaman yang sedang aktif; misalnya '/index.html'.
Variable-variabel Lingkungan
Variabel-variabel ini diimport ke dalam variabel global PHP dari variabel lingkungan dimana PHP dijalankan. Kebanyakan disediakan oleh program shell dimana PHP dijalankan dan system yang berbeda akan menjalankan program shell yang berbeda pula, daftar yang tetap tidak mungkin diberikan karena variasi ini. Silahkan lihat dokumentasi program shell untuk variabel yang diberikan oleh lingkungan shell yang anda pakai.Variabel-variabel yang lain termasuk variabel yang diberikan oleh CGI, akan diberikan juga tidak peduli PHP dijalankan sebagai modul server atau pemroses CGI.Variable-variabel PHP
Ini adalah variabel yang dibuat oleh PHP sendiri.
- argv
- Array argument yang diberikan pada skrip. Jika skrip dijalankan dalam mode perintah baris maka variabel ini bisa berisi parameter seperti gaya bahasa C. Ketika dipanggil dengan metode GET, variabel ini akan berisi string permintaan yang diberikan.
- argc
- Berisi jumlah variabel yang diberikan saat menjalankan skrip (jika dijalankan dalam mode perintah baris).
- PHP_SELF
- Nama file yang skrip yang sedang berjalan, relatif terhadap dokumen root. Jika PHP dijalankan sebagai pemroses perintah baris, variabel ini tidak diberikan.
- HTTP_COOKIE_VARS
- Array asosiatif variabel-variabel yang diberikan kepada skrip lewat cookies HTTP. Hanya diberikan jika pelacakan variabel diaktifkan baik lewat direktif konfigurasi track_vars atau direktif <?php_track_vars?>.
- HTTP_GET_VARS
- Array asosiatif variabel-variabel yang diberikan kepada skrip lewat metode HTTP GET. Hanya diberikan jika pelacakan variabel diaktifkan baik lewat direktif konfigurasi track_vars atau direktif <?php_track_vars?>.
- HTTP_POST_VARS
- Array asosiatif variabel-variabel yang diberikan kepada skrip lewat metode HTTP POST. Hanya diberikan jika pelacakan variabel diaktifkan baik lewat direktif konfigurasi track_vars atau direktif <?php_track_vars?>.
Ruang Lingkup Variabel
Ruang lingkup sebuah variabel tergantung dimana ia didefinisikan. Pada umumnya variabel-variabel PHP hanya mempunyai satu ruang lingkup. Ruang lingkup ini meluas kepada file-file yang disisipkan, dengan perintah include atau require. Sebagai contoh,1 2 $a = 1; 3 include "b.inc"; 4 |
1 2 $a = 1; /* global scope */ 3 4 Function Test () { 5 echo $a; /* rujukan ke variabel lokal */ 6 } 7 8 Test (); 9 |
1 2 $a = 1; 3 $b = 2; 4 5 Function Sum () { 6 global $a, $b; 7 8 $b = $a + $b; 9 } 10 11 Sum (); 12 echo $b; 13 |
Skrip diatas akan menghasilkan "3". Dengan mendeklarasikan $a dan $b sebagai variabel global dalam fungsi, semuanya proses yang berhubungan dengan keduanya akan mengubah variabel global. Tidak batasan jumlah variabel global yang dapat dimanipulasi oleh sebuah fungsi.
Cara kedua untuk mengakses variabel dari ruang lingkup global adalah dengan menggunakan array khusus yang didefinisikan oleh PHP, yaitu $GLOBALS. Contoh sebelumnya dapat ditulis sebagai berikut,
1 2 $a = 1; 3 $b = 2; 4 5 Function Sum () { 6 $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; 7 } 8 9 Sum (); 10 echo $b; 11 |
Array $GLOBALS adalah array asosiatif dimana nama variabel global dipakai sebagai key dan isi variabel tersebut adalah nilai elemen arraynya.
Sifat penting lainnya dari ruang lingkup adalah apa yang disebut dengan variabel static. Variabel static hanya terdapat dalam ruang lingkup lokal suatu fungsi, akan tetapi ia tidak akan kehilangan nilainya jika pelaksanaan program keluar dari ruang lingkup ini. Perhatikan contoh ini:
1 2 Function Test () { 3 $a = 0; 4 echo $a; 5 $a++; 6 } 7 |
Fungsi ini tidak begitu berguna karena setiap ia dipanggil ia akan memberikan nilai 0 pada $a kemudian mencetak "0". $a++ yang menaikkan nilai variabel tidak ada gunanya karena jika fungsi sudah selesai dijalankan variabel $a akan dihapus. Agar fungsi ini ada gunanya, supaya tidak kehilangan nilai perhitungan yang berlaku, variabel $a harus dideklarasikan sebagai static:
1 2 Function Test () { 3 static $a = 0; 4 echo $a; 5 $a++; 6 } 7 |
Variabel static juga menyediakan satu cara yang berhubungan fungsi-fungsi rekursif. Sebuah fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Kita harus berhati-hati menulis fungsi rekursif sebab bisa saja fungsi tersebut akan berulang terus menerus. Anda harus yakin ada kondisi yang bisa dipenuhi supaya proses pengulangan berhenti. Fungsi rekursi sederhana berikut akan menghitung sampai 10, dengan menggunakan variabel static $count untuk mengetahui kondisi kapan harus berhenti.
1 2 Function Test () { 3 static $count = 0; 4 5 $count++; 6 echo $count; 7 if ($count < 10) { 8 Test (); 9 } 10 $count--; 11 } 12 |
Variabel yang berubah-ubah
Kadang-kadang lebih mudah jika kita bisa membuat variabel yang bisa berubah-ubah namanya. Yaitu, nama variabel yang dapat diset dan digunakan secara dinamis. Variabel normal diset dengan perintah seperti berikut,1 2 $a = "hello"; 3 |
1 2 $$a = "world"; 3 |
1 2 echo "$a ${$a}"; 3 |
1 2 echo "$a $hello"; 3 |
Variabel-variabel dari luar PHP
Form HTML (GET dan POST)
Ketika sebuah formulir dikirimkan pada skrip PHP, semua variabel dari formulir tersebut secara otomatis bisa di pakai dalam skrip PHP. Sebagai contoh lihat contoh berikut,Contoh 7-1. Variabel formulir sederhana
|
PHP juga mengerti array dalam konteks variabel-variabel formulir, akan tetapi hanya terbatas pada ukuran satu dimensi. Anda bisa, sebagai contoh, mengumpulkan variabel-variabel yang berhubungan, atau menggunakan kemampuan ini untuk mengambil nilai dari input select yang banyak.
Contoh 7-2. Variabel formulir yang lebih kompleks.
|
Jika track_vars PHP diaktifkan, baik dengan mengunakan setting konfigurasi track_vars atau direktif <?php_track_vars?>, maka variable yang dikirimkan melalui metode POST atau GET akan dapat ditemukan dalam array asosiatif global $HTTP_POST_VARS dan $HTTP_GET_VARS.
Nama-nama Variabel IMAGE SUBMIT
Ketika mengirimkan formulir, kita bisa memakai gambar bukan tombol submit standar dengan tag seperti berikut,1 2 <input type=image src="image.gif" name="sub"> 3 |
Cookie HTTP
PHP secara transparan mendukung cookies HTTP sebagaimana yang didefinisikan oleh Spesifikasi Netscape. Cookies adalah suatu mekanisme untuk menyimpan data di browser remote dan mengidentifikasi user. Anda dapat memberikan cookie menggunakan fungsi SetCookie(). Cookie adalah bagian dari header HTTP, jadi fungsi SetCookie harus dipanggil sebelum output yang lain dikirim ke browser. Ini adalah sama dengan batasan fungsi Header(). Setiap cookie yang dikirim kepada server dari klien akan otomatis dijadikan variabel PHP seperti halnya data dengan metode GET dan POST.Jika anda ingin memberikan banyak nilai pada satu cookie, tambahkan [] pada nama cookie. Sebagai contoh,1 2 SetCookie ("MyCookie[]", "Testing", time()+3600); 3 |
Contoh-3. Contoh SetCookie
|
Variabel-variabel Lingkungan
PHP secara otomatis akan membuat variabel lingkungan menjadi variabel PHP seperti yang lain.1 2 echo $HOME; /* Shows the HOME environment variable, if set. */ 3 |
Titik di dalam nama variabel masukan
Biasanya, PHP tidak mengabaikan nama variabel jika mereka diberikan pada suatu skrip. Akan tetapi, harus diingat bahwa tanda "titik" adalah karakter yang tidak boleh dipakai sebagai nama variabel dalam PHP. Sebagai alasan, lihat contoh berikut,1 2 $varname.ext; /* nama variabel yang tidak diperbolehkan */ 3 |
Karena alasan ini, harus selalu diingat bahwa PHP secara otomatis akan mengganti setiap tanda "titik" nama-nama variabel yang diberikan kepadanya dengan garis bawah.
Menentukan tipe data variabel
Karena PHP menentukan tipe variabel dan mengkonversinya jika perlu, tidak selalu jelas sebuah variabel itu mempunyai tipe apa pada saat tertentu. PHP menyediakan beberapa fungsi yang dapat menentukan jenis data suatu variabel. Mereka itu adalah gettype(), is_long(), is_double(), is_string(), is_array(), dan is_object().
oleh fsakti
FASANA IT | Tutorial Computer
Updated at :
22.55
Anda suka artikel di atas ???
Klik salah satu atau ketiga tombol di bawah ini :
Klik salah satu atau ketiga tombol di bawah ini :
1 komentar:
mari belajar php menenal variable
Posting Komentar