'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.
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.
Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.
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.phpStaat er 'unexpected' op regel N, kijk dan of regel N-1 eindigt met een puntkomma, of alle haakjes ( ) [ ] { } gesloten zijn en of aanhalingstekens kloppen.
Er mist een sluitende accolade } ergens in het bestand. Een editor die bij elkaar horende haakjes markeert, vindt hem het snelst.
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.
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.
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.
Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.
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.
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.
Indirect: als de server een oudere PHP-versie draait dan waarvoor de code geschreven is. De code zelf is dan prima, maar te nieuw.
Hulp nodig van een mens? Website-onderhoud · WordPress-support · Hosting en onderhoud · Alle oplossingen