Belajar bahasa pemrograman PHP

 BELAJAR PHP

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
Dalam PHP, variabel selalu diisi dengan nilai. Dengan kata lain,
ketika anda mengisikan sebuah ekspresi pada suatu variabel, semua nilai ekspresi asal akan disalin ke dalam variabel tujuan. Ini berarti setelah mengisikan nilai suatu variabel ke variabel yang lain, jika kita mengubah nilai salah satu variabel tidak akan mempengaruhi variabel yang lain. Untuk lebih jelas mengenai pengisian ini, lihat Ekspresi.
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     

Disini variabel $a dapat dipakai dalam skrip b.inc yang disisipkan. Dalam fungsi yang kita definisikan sendiri ruang lingkup fungsi tersebut yang dipakai. Semua variabel yang digunakan dalam suatu fungsi secara default terbatas pada ruang lingkup fungsi tersebut. Sebagai contoh,  
  1  
  2 $a = 1; /* global scope */ 
  3 
  4 Function Test () { 
  5     echo $a; /* rujukan ke variabel lokal */ 
  6 } 
  7 
  8 Test ();
  9     

Skrip ini tidak akan memberikan hasil karena perintah echo merujuk pada variabel $a yang berlaku di lokal, dan variabel ini belum diisikan dengan nilai pada ruang lingkup tersebut. Anda mungkin dapat melihat bahwa ini sedikit berbeda bahasa C, pada C variabel global secara otomatis dikenali oleh fungsi kecuali didefinisikan lagi dalam fungsi. Ini bisa menyebabkan masalah jika secara tak sengaja seseorang mengubah variabel global. Dalam PHP variabel global harus dideklarasikan global di dalam fungsi jika fungsi tersebut ingin menggunakannya. Contoh,
 
  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     

Sekarang setiap fungsi Test() dipanggil ia akan mencetak nilai $a dan menaikkan nilainya. 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     

Variabel yang berubah mengambil nilai sebuah variabel dan memperlakukannya sebagai nama variabel. Pada contoh diatas, hello, dapat dipakai sebagai nama variabel dengan menambahkan dua tanda dollar. Lihat contoh berikut,
 
  1 
  2 $$a = "world";
  3     

Pada tahap ini dua variabel telah didefinisikan dan disimpan dalam daftar simbol PHP: $a berisi "hello" dan $hello berisi "world". Jadi, perintah:
 
  1 
  2 echo "$a ${$a}";
  3     

akan menghasilkan hasil yang sama seperti,
 
  1 
  2 echo "$a $hello";
  3     

keduanya akan mencetak kalimat: hello world. Untuk memakai variabel yang berubah-ubah dengan array, anda harus memperhitungkan masalah yang bisa saja membingungkan. Sebagai contoh, jika anda menulis $$a[1] maka pemroses harus tahu apakah anda bermaksud menggunakan $a[1] sebagai variabel atau anda menginginkan $$a sebagai variabel dan [1] adalah indeks dari variabel tersebut. Sintaksis untuk menghindari keraguan seperti ini adalah:${$a[1]} untuk kasus yang pertama  dan ${$a}[1] untuk kasus yang kedua.
 

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
 
  1 
  2 <form action="foo.php3" method="post">
  3     Name: <input type="text" name="name"><br>
  4     <input type="submit">
  5 </form>
  6       
Ketika dikirimkan, PHP akan membuat variabel $name, yang berisi apa saja yang diberikan pada field Name: di formulir.
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.
 
  1 
  2 <form action="array.php" method="post">
  3     Name: <input type="text" name="personal[name]"><br>
  4     Email: <input type="text" name="personal[email]"><br>
  5     Beer: <br>
  6     <select multiple name="beer[]">
  7         <option value="warthog">Warthog
  8         <option value="guinness">Guinness
  9         <option value="stuttgarter">Stuttgarter Schwabenbräu
 10         </select>
 11     <input type="submit">
 12 </form>
 13       
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       
Saat pengguna menekan tombol mouse di dalam daerah gambar, formulir akan dikirim ke server dengan dua variabel tambahan, yaitu sub_x and sub_y. Variabel tersebut akan berisi koordinat dalam gambar yang di klik. Bagi yang sudah berpengalaman mungkin dapat melihat nama variabel yang dikirimkan oleh browser berisi tanda "titik" bukan garis bawah, akan tetapi PHP akan mengkonversi titik tersebut menjadi garis bawah secara otomatis.
 

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      

Sebagai catatan bahwa sebuah cookie akan menimpa cookie sebelumnya dengan nama cookie yang sama kecuali path domainnya berbeda. Jadi, untuk keranjang belanja anda mungkin ingin menyimpan sebuah penghitung dan memakainya nanti.
 
Contoh-3. Contoh SetCookie
 
  1 
  2 $Count++;
  3 SetCookie ("Count", $Count, time()+3600);
  4 SetCookie ("Cart[$Count]", $item, time()+3600);
  5      

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       
Informasi yang datang dari mekanisme GET, POST dan cookie juga secara otomatis menciptakan variabel, kadang-kadang lebih baik membaca variabel dari lingkungan secara eksplisit untuk memastikan bahwa anda mendapatkan versi yang tepat dari variabel yang bersangkutan. Fungsi getenv() dapat digunakan untuk ini. Anda juga bisa membuat variabel lingkungan dengan fungsi putenv().
 

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      
Sekarang yang dilihat oleh pemroses adalah variabel yang diberi nama $varname, diikuti operator penggabungan  string, kemudian diikuti dengan string biasa (yaitu, string yang tidak diberi tanda petik dan bukan nama yang didefinisikan di tempat lain) 'ext'. Tentu saja, ini tidak akan menghasilkan sesuai dengan apa yang diharapkan.
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().

Artikel Terkait



0 komentar:

Poskan Komentar

Jadilah pengunjung yang aktif, komentar anda sangat berarti.