Parse hataları, sayfanızda herhangi bir sözdizimi (syntax) hatası oluştuğunda yorumlayıcı tarafından ortaya çıkarılırlar.
En çok görülen parse hatalarına örnek verecek olursak;
1. Parse error: syntax error, unexpected $end in … .php on line …
2. Parse error: syntax error, unexpected T_IF/T_WHILE/T_FOR, expecting ‘{‘ in … .php
3. Parse error: unexpected T_IF, expecting ‘,’ or ‘;’ in … .php on line …
4. Parse error: unexpected T_STRING, expecting’,’ or ‘;’ in … .php on line …
Bu hataları örnekleyerek açıklayacak olursak:
1. Parse error: syntax error, unexpected $end in
Hata sebebi: Kullanılan 1. if sorgusu ‘}’ ile kapatılmamış. Böyle bir durum oluştuğunda yorumlayıcı size sayfanın son satırını verecektir.
PHP- Kodu:
if (5 > 4) {
echo 'IF ';
if (1< 0) {
echo 'Inner IF';
}
Hata sebebi: Fonksiyon açma ayracı bulunamadı. Bu yüzden hatayı if e yükleyecektir. Hata raporları: T_IF for if, T_WHILE for while, T_FOR for.
Fonksiyonu açarken ayracı fonksiyon isminden sonra koymalısınız. Bu yüzden yorumlayıcı ilk açma ayracını arayacak ve hatayı if e rapor edecektir.
PHP- Kodu:
function test ()
if (1>2) {
echo ' IF ';
}
for ($i=0; $i<=5; $i++) {
echo "For $i";
}
}
3. Parse error: parse error, unexpected T_IF, expecting ',' or ';' in … .php on line …
Hata sebebi: İlk “echo” dan sonra konulmayan ‘;’. Bu yüzden yorumlayıcı hatayı ikinci if e yükleyecektir. İlk “echo” nun devam etmesini bekliyor ama devam etmiyor. Bunun yerine hatayı if ifadesine yüklüyor.
PHP- Kodu:
if (5 > 4) {
echo 'testing error '
if (1< 0) {
echo 'Inner IF';
}
}
Satır sonlarında ‘;’ yerine ‘,’ kullanırsanız da aynı hata ile karşılaşırsınız. Hata şöyle karşınıza çıkacaktır: parse error, unexpected T_IF in …
PHP- Kodu:
if (5 > 4) {
echo 'parse error answer ',
if (1< 0) {
echo 'Inner IF';
}
}
4. Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in … .php on line …
Hata sebebi: İlk “echo” “ ’ ” eksik olduğu için kapatılmadı. (‘) ile açtığınızda (“) ile veya (“) ile açtığınızda (‘) ile kapatırsanız da aynı hata ile karşılaşırsınız.
PHP- Kodu:
if (5 > 4) {
echo 'error due to missing quote ;
if (1< 0) {
echo 'Inner IF;
}
}
teşekkürler çok işime yaradı..
YanıtlaSil