Parse Error: Syntax Error, Unexpected Hatası
- Yayınlandı:
- Son teknik kontrol:
Parse error: syntax error, unexpected token "}" in /wp-content/themes/tema/functions.php on line 42Belirtiler
- “Parse error: syntax error, unexpected …” ile başlayan satır
- Mesajda bir dosya yolu ve satır numarası var (ör. functions.php on line 42)
- Hem site hem yönetim paneli açılmıyor veya kritik hata sayfası görünüyor
- Sorun bir kod parçası ekledikten veya bir dosyayı düzenledikten hemen sonra başladı
Kısa cevap
Parse error, PHP’nin bir dosyayı çalıştırmadan önce okuyamadığı, yani kodda yazım (sözdizimi) hatası olduğu anlamına gelir. Mesaj hangi dosyada ve hangi satırda takıldığını söyler; asıl hata çoğu zaman o satırda veya hemen öncesindedir. En sık nedenler functions.php’ye elle eklenen bir kod parçasında eksik noktalı virgül, kapanmamış süslü parantez veya düz tırnak yerine akıllı tırnak kullanılmasıdır. Çözüm, dosyayı FTP ile açıp son değişikliği geri almaktır.
Önemli noktalar
- Parse error bir sözdizimi hatasıdır: PHP dosyayı hiç çalıştıramaz.
- Mesajdaki dosya yolu sorumlu tema veya eklentiyi, satır numarası yeri gösterir.
- Bildirilen satır, asıl hatanın bir sonraki satırı olabilir — bir satır yukarıya da bakın.
- Panel içi dosya düzenleyicisi ölümcül hatalı değişikliği geri alır; bu hata çoğunlukla FTP veya dosya yöneticisiyle yapılan düzenlemelerden sonra görülür.
- Değişiklik yapmadan önce dosyanın bir kopyasını almak, geri dönüşü saniyelere indirir.
Mesajı okumak
Mesajın üç parçası vardır: ne beklenmediği (unexpected …), hangi dosya (in /…/functions.php) ve hangi satır (on line 42). Dosya yolundaki themes/ veya plugins/ sonrasındaki klasör adı, sorunun hangi tema veya eklentide olduğunu söyler.
| Mesajdaki ifade | Anlamı | Nereye bakılır |
|---|---|---|
unexpected token "}", expecting "," or ";" | Bir önceki ifadenin sonunda noktalı virgül eksik | Bildirilen satırın bir üstündeki satırın sonu |
unexpected end of file | Dosya bitti ama PHP hâlâ bir kapanış bekliyor | Kapanmamış süslü parantez veya eksik noktalı virgül — genellikle son eklenen blok |
Unclosed '{' on line 2 | Açılan bir süslü parantez hiç kapanmamış | Mesajda adı geçen satırdaki blok |
unexpected identifier "world”" | Düz tırnak yerine akıllı tırnak (“ ”) kullanılmış | Web sayfasından veya kelime işlemciden kopyalanan kod |
unexpected token "<", expecting end of file | Dosyada ikinci bir <?php açılış etiketi var | Kod parçası dosyaya <?php ile birlikte yapıştırılmış |
unexpected double-quoted string | Dizide iki öğe arasında virgül eksik | Bildirilen satırdaki dizi tanımı |
Çözüm adımları
FTP veya dosya yöneticisiyle bağlanın
Panel açılmadığı için düzeltme dosya düzeyinde yapılır. Hosting panelinin dosya yöneticisi de yeterlidir.
Mesajdaki dosyayı açın ve bir kopyasını alın
Değişiklik yapmadan önce dosyayı bilgisayarınıza indirin; bir şey ters giderse geri koyarsınız.
Son eklenen kodu kaldırın
Hatayı son eklediğiniz kod parçası yarattıysa en hızlı çözüm onu tamamen silmektir. Site açıldıktan sonra kodu düzeltip yeniden ekleyebilirsiniz.
Satırı düzeltin
Kodu korumak istiyorsanız bildirilen satırı ve bir üstünü kontrol edin: noktalı virgül, parantez eşleşmesi, tırnak türü.
Siteyi ve paneli kontrol edin
İkisi de açılıyorsa sorun çözülmüştür. Hata başka bir satıra geçtiyse bir sonraki hatayı aynı yöntemle düzeltin.
Bilgisayarınızda PHP kuruluysa dosyayı yüklemeden önce php -l functions.php komutuyla sözdizimi denetimi yapabilirsiniz; komut dosyayı çalıştırmadan yalnızca yazım hatalarını raporlar.
Kod eklemediyseniz: eklenti ve PHP sürümü
Hata bir eklenti veya tema güncellemesinden sonra başladıysa ve dosya yolu o eklentiyi gösteriyorsa, eklentinin yeni sürümü sunucunuzdaki PHP sürümünün tanımadığı bir sözdizimi kullanıyor olabilir. Örneğin PHP 8 ile gelen match ifadesi PHP 7.4’te parse error verir. Eklentinin gerektirdiği PHP sürümünü sunucunuzla karşılaştırın; kalıcı çözüm için PHP sürümü yükseltme rehberine bakın. Geçici olarak eklentiyi, klasörünün adını değiştirerek devre dışı bırakabilirsiniz.