✦ Oplossingen · PHP-fouten

PHP Parse error: syntax error, unexpected …

'Parse error: syntax error, unexpected token' betekent dat PHP de code niet kan lezen: een ontbrekende puntkomma, haakje of aanhalingsteken, of nieuwe syntaxis op een te oude PHP-versie.

Waarom gebeurt dit?

Een parse error ontstaat voordat de code wordt uitgevoerd: PHP kan het bestand niet eens lezen. De melding noemt het onverwachte stukje (unexpected token "}", unexpected end of file, unexpected identifier) en een regelnummer.

Het regelnummer is waar PHP vastliep, niet altijd waar de fout zit. Een vergeten puntkomma of haakje op regel 40 wordt vaak pas op regel 41 of aan het eind van het bestand gemeld. Een tweede oorzaak: code met nieuwere syntaxis (zoals match, ?-> of benoemde argumenten uit PHP 8) op een server met een oudere PHP-versie.

Zo los je het op, stap voor stap

Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.

  1. Controleer het bestand met php -l

    Op de opdrachtregel controleert PHP de syntaxis zonder de code uit te voeren. Zo vind je de fout zonder de site verder te raken.

    php -l pad/naar/bestand.php
  2. Kijk één regel hoger

    Staat er 'unexpected' op regel N, kijk dan of regel N-1 eindigt met een puntkomma, of alle haakjes ( ) [ ] { } gesloten zijn en of aanhalingstekens kloppen.

  3. 'Unexpected end of file'

    Er mist een sluitende accolade } ergens in het bestand. Een editor die bij elkaar horende haakjes markeert, vindt hem het snelst.

  4. Controleer de PHP-versie

    Werkt de code lokaal wel, vergelijk dan de PHP-versie. Code met PHP 8-syntaxis geeft op een oudere versie een parse error. Werk de PHP-versie bij of pas de code aan.

  5. Herstel snel bij een kapotte site

    Gaat het om een plugin of thema in WordPress, hernoem dan via FTP of het bestandsbeheer de map van die plugin (bijvoorbeeld naar plugin-uit). WordPress schakelt hem dan uit en de site komt terug, zodat je rustig kunt repareren.

Lukt het niet? Wij helpen

Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.

Aanvraag

Hulp aanvragen

Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.

Veelgestelde vragen

Vragen over dit probleem

Ik heb één regel in functions.php geplakt en nu is alles wit.

Een parse error in functions.php stopt de hele site. Haal de geplakte regel via FTP of het bestandsbeheer weer weg; plak code bij voorkeur via een snippets-plugin of op een testomgeving.

Wat betekent 'unexpected T_STRING' of 'unexpected identifier'?

PHP verwachtte op die plek iets anders, vaak omdat een aanhalingsteken in een tekst niet is ontsnapt of een puntkomma ontbreekt op de regel ervoor.

Kan een parse error door de server komen?

Indirect: als de server een oudere PHP-versie draait dan waarvoor de code geschreven is. De code zelf is dan prima, maar te nieuw.