Untuk setiap belajar memprogram, termasuk PHP, sangat mustahil menulis program tanpa membuat suatu kesalahan sedikitpun. Triknya adalah menemukan bagaimana mengenali mereka (error2 tersebut), buka lebar2 mata Anda, katakan "Tidak lagi!", dan kemudian perbaiki mereka. Salah satu pesan error (kesalahan) yang sering Anda temui adalah, contoh:
Parse error: parse error in c:\test.php on line 7
Ini adalah salah satu cara PHP mengatakan, "Huh?". Maksudnya, dia tidak mengerti mengenai sesuatu.
Pesan ini sangat membantu dengan menunjuk pada file dan urutan baris dimana PHP mengalami kebingungan

. Kadang2 dia langsung menunjuk pada letak kesalahannya, namun kadang2 kebingungan PHP merupakan akibat dari error (kesalahan) sebelumnya dalam program.
1. MISSING SEMICOLON (KURANG TANDA TITIK KOMA)Setiap pernyataan PHP diakhiri dengan sebuiah tanda semicolon/titik koma (
;).
PHP tidak berhenti membaca sebuah pernyataan sampai dia menemukan sebuah tanda semicolon/titik koma. Jika Anda lupa tidak menuliskan karakter semicolon pada akhir sebuah baris, PHP melanjutkan membaca pernyataan pada baris berikutnya.
Contoh, perhatikan pernyataan berikut:
$tes = 1
echo $tes;Tentu saja, pernyataan tersebut menurut PHP tidak logis (masuk akal) saat PHP membaca dua baris kode sebagai satu pernyataan, jadi dia komplain dengan menampilkan satu pesan kesalahan, seperti yang terlihat pada contoh berikut:
Parse error: parse error in c:\test.php on line 2
Pada PHP versi terbaru (saat kode ini dibuat, yaitu versi 5.2.3) dengan kode:
< ?php
$test = 1
echo $test;
?>Pesan errornya:
Parse error: syntax error, unexpected T_ECHO in C:\test.php on line 3
So, jangan lupa untuk memberikan tanda semicolon pada tiap akhir baris yang menyatakan satu pernyataan.
2. NOT ENOUGH EQUAL SIGNS (KURANG TANDA SAMA DENGAN)Ketika Anda meminta/bertanya apakah dua nilai yang diberikan sama atau tidak dalam sebuah pernyataan perbandingan, Anda perlu memberikan dua tanda sama dengan (
==).
Penggunaan satu tanda sama dengan merupakan kesalahan umum yang sering terjadi.
Hal itu tentu saja wajar dikarenakan Anda termasuk saya selama ini sering (bahkan selalu) menggunakan satu tanda sama dengan sejak sekolah dasar, contoh 1 + 1 = 2.
Hal ini adalah kesalahan yan cukup sulit dikenali karena dia tidak menyebabkan atau memunculkan pesan error. Hanya saja membuat program Anda menjadi ganjil, seperti
looping (pengulangan) yang tak pernah berhenti atau adanya blok2 tak pernah dieksekusi.
Kita lihat contoh kode berikut:
< ?php
$tes = 0;
while ( $tes = 0 )
{
$tes++;
}
?>
menakjubkan bukan, kita memandangi saja pada kode tersebut di atas dan tidak melihat, kenapa dia melakukan perulangan yang tak berhenti-berhenti (tak berakhir)!
3. MISSPELLED VARIABLE NAMES (SALAH EJA NAMA VARIABEL)Ini adalah titik rawan PHP lainnya yang tidak memunculkan pesan error, cuma membuat ganjil tingkah laku program kita.
Jika Anda
mispell (salah eja) sebuah nama variabel, PHP menganggapnya sebagai seuatu variabel baru dan mengerjakan apa yang Anda minta untuk dikerjakan.
Berikut ini '
cara pintar lain'

untuk menuliskan sebuah
looping yang tiada akhir.
< ?php
$tes = 0;
while ( $tes == 0 )
{
$Tes++;
}
?>
INGAT!: Bagi PHP,
$tes adalah tidak sama dengan variabel
$Tes.
4. MISSING DOLLAR SIGNS (KURANG TANDA DOLLAR)Kurangnya tanda
dollar (
$) dalam sebuah nama variabel sangat sulit untuk dilihat, namun minimal, biasanya dia memunculkan pesan error sehingga Anda tahu di mana letak kesalahannya.
Biasanya dia memunculkan pesan error yang cukup familiar:
Parse error: parse error in test.php on line 7
5. TROUBLING QUOTES (TANDA PETIK BERMASALAH)Anda bisa memiliki
quotes/tanda petik yang terlalu banyak, terlalu sedikit, atau salah tulis/jenis. Anda memiliki terlalu banyak saat Anda menempatkan tanda
quotes dalam tanda
quotes lainnya, misal:
$tes = "<table width="100%">";
PHP akan melihat tanda
double quote (petik ganda) (
") kedua - sebelum 100 - sebagai akhir dari tanda
double quote (
") dan membaca karakter 1 sebagai sebuah instruksi, dimana tentu saja tidak logis (masuk akal).
Walah! Muncul pesan error lainnya.

Kode tersebut bisa Anda tuliskan seperti pada contoh berikut:
$tes = "<table width='100%'>";
atau
$tes = "<table width=\"100%\">";
Anda dibilang memiliki tanda
quotes yang terlalu sedikit jika Anda lupa mengakhiri string yang berada dalam
quotes, seperti:
$tes = "<table width='100%'>;
PHP akan melanjutkan membaca baris berikutnya sebagai bagian dari string dalam
quotes sampai dia menemukan tanda
double quote lainnya, dimana bisa jadi tak terdapat pada baris2 berikutnya.
Hal ini salah satu kejadian dimana pemunculan error menunjuk pada dimana PHP mengalami kebingungan, bukan pada error yang sesungguhnya.
Error yang sebenarnya terjadi pada beberapa baris sebelumnya, saat Anda lupa mengakhiri string dengan
quotes.
Anda dibilang memiliki jenis quotes yang salah saat Anda menggunakan tanda
single quote / petik tunggal (
') dimana seharusnya
double quote / petik ganda (
") atau sebaliknya.
6 INVISIBLE OUTPUT (OUTPUT TIDAK TERLIHAT/MUNCUL)Beberapa pernyataan, seperti pernyataan
header, harus dieksekusi sebelum program menghasilkan output apapun. Jika Anda mencoba menggunakan pernyataan2 semacam itu setelah mengirimkan output, mereka akan gagal.
Contoh pernyataan berikut akan gagal karena pesan
header tidak pada output pertama:
< html>
< ?php
header("Location: http://if.web.id");
?><html> tidak berada dalam seksi (bagian) PHP dan oleh karena itu dikirim sebagai output HTML.
Pernyataan2 berikut ini akan bekerja baik (berhasil):
< ?php
header("Location: http://if.web.id");
?>
<html>
Sedangkan, pernyataan berikut akan gagal:
< ?php
header("Location: http://if.web.id");
?>
<html>sebab, terdapat satu tanda spasi sebelum dimulainya tag PHP. Tanda spasi tersebut merupakan output ke
browser, sehingga halaman web kelihatan kosong.
Oleh karena itu, pernyataan header gagal dieksekusi dikarenakan di sana terdapat output sebelumnya. Hal ini merupakan kesalahan umum dan susah untuk terdeteksi.
7. NUMBERED ARRAYS (ARRAY BERBILANG)PHP menganggap bahwa nilai pertama dalam suatu array adalah angka nol (
0). Tentu saja, manusia cenderung mempercayai atau menganggap bahwa sebuah daftar/rangkaian diawali oleh nomor satu (
1).
Ini secara fundamental merupakan cara yang berbeda dalam menampilkan isi dari suatu daftar/rangkaian menurut kita manusia dalam mempercayai suatu array tidak bekerja dengan benar saat dia bekerja baik2 saja.
Perhatikan contoh kode berikut:
$tes = 1;
while ( $tes <= 3 )
{
$array[] = $tes;
$tes++;
}
echo $array[3];Tak ada yang ditampilkan oleh pernyataan2 tersebut. Kita langsung saja menyimpulkan bahwa ada sesuatu yang salah dengan
looping (perulangan) -nya. Sebenarnya, dia baik2 saja. Hanya saja hasilnya adalah seperti terlihat pada array berikut:
$array[0]=1
$array[1]=2
$array[2]=3
Dan tak ada yang menyatakan atau memberikan isi apapun dalam
$array[3].
8. INCLUDING PHP STATEMENTS (MENYERTAKAN PERNYATAAN2 PHP)Ketika sebuah file dibaca dengan menggunakan pernyataan
include dalam bagian PHP, nampaknya beralasan bagi kita bahwa pernyataan2 dalam file akan diperlakukan sebagai pernyataan2 PHP.
Lagipula, PHP menambahkan pernyataan2 tersebut dalam program di titik dimana kita menyertakannya.
Bagaimanapun, PHP tidak melihatnya seperti anggapan atau cara kita. Jika sebuah file bernama
file1.inc berisi pernyataan2 berikut:
if ( $tes == 1 )
echo "Hi";dan kita membacanya dengan menggunakan pernyataan2 berikut dalam program utama:
< ?php
$tes = 1;
include ("file1.inc");
?>Kita berharap kata
Hi muncul di halaman web. Bagaimanapun, halaman web sebenarnya menampilkan ini:
if ( $tes == 1 ) echo "Hi";
Jelasnya, file yang disertakan dilihat atau dianggap sebagai HTML. Untuk mengirimkan
Hi ke halaman web, dalam
file1.inc perlu diisi pernyataan2 sbb:
< ?php
if ( $tes == 1 )
echo "Hi";
?>
9. MISSING MATES (KEHILANGAN TEMAN)Tanda
Parentheses (tanda kurung buka tutup) dan
curly brackets (kurung kurawal) datang sebagai sebyah pasangan dan harus digunakan dengan cara seperti itu.
Dibuka dengan sebuah
( yang tidak ditutup dengan
) atau sebuah
{ tanpa sebuah
} akan menghasilkan sebuah pesan kesalahan. Salah satu favorit saya dalam penggunaan satu tanda kurung tutup dimana diperlukan dua, adalah seperti terlihat pada pernyataan berikut:
if ( isset($tes)Dalam pernyataan tersebut di atas diperlukan sebuah satu tanda kurung tutup di akhir pernyataan.
Memang cukup sulit untuk mengetahui bahwa salah satu blok2 Anda tidak ada tutupnya saat Anda memiliki blok2 di dalam blok, dan blok tersebut berada di dalam blok2 lainnya. Misal, perhatikan contoh berikut:
while ( $tes < 3 )
{
if ( $tes2 != "ya" )
{
if ( $tes3 > 4 )
{
echo "baiklah";
}
}Anda dapat melihat di sana terdapat 3 tanda kurung kurawal pembuka dan hanya 2 sebagai penutupnya.
Bayangkan jika terdapat 100 baris kode di dalam blok2 ini. Akan menjadi sulit sekali mendeteksi permasalahan - khususnya jika Anda berpikir tanda kurung tutup yang terakhir adalah penutup
looping while, namun PHP melihatnya sebagai penutup
loop IF untuk
$tes2.
Di suatu tempat dalam program Anda, PHP mungkin menggunakan tanda kurung tutup untuk menutup
looping while dimana Anda bahkan tidak melihatnya. Akan menjadi rumit untuk dilacak permasalahan tersebut dalam program yang berukuran besar.
Blok2 yang memiliki indentasi lebih mudah untuk melihat kepunyaan blok mana tanda kurung penutup tersebut. Juga, saya sering menggunakan komentar untuk tetap menjaga trek/jejak sedang berada di mana saya sekarang, seperti:
while ( $tes < 3 )
{
if ( $tes2 != "ya" )
{
if ( $tes3 > 4 )
{
echo "baiklah";
} // penutup blok IF untuk $tes3
} // penutup blok IF untuk $tes2
} // penutup blok WHILE
10. CONFUSING PARENTHESES AND BRACKETS (TANDA KURUNG BIASA DAN KURUNG KURAWAL YANG MEMBINGUNGKAN)Saya tidak yakin apakah hal ini merupakan masalah untuk semua orang atau masalah buat saya saja karena kadang2 apa yang dilihat tidak seperti yang digunakan. Meskipun PHP tidak bermasalah dalam memberdakan antara tanda kurung biasa dan kurung kurawal, mata kita kadang2 tidak sesuai. Khususnya saat memandangi layar komputer pada jam2 terakhir setelah selama 10 jam berturutan melakukan pemrograman, kita

maksudnya saya, dengan mudahnya bingung oleh tanda
( dan
{.
Penggunaan tanda yang salah akan memberikan pesan error dalam
parsing kode.
_Th47s 4ll_
So, terus latihan ya, biar mudah mengenali error dan tentu saja mudah memperbaikinya.