Parse error: syntax error, unexpected...

Z PHPEdia.pl

Błędy zgłaszane jako parse error są błędami parsowania. Oznacza to, że gdzieś w kodzie znajduje się niepoprawna instrukcja lub brakuje jakiegoś znaku, np średnika.

Wyróżnia się następujące błędy parsowania.

Spis treści

unexpected T_...

Najczęściej spotykane błędy to unexpected T_IF, unexpected T_STRING, itp. Wystąpienie takiego błędu oznacza, że interpreter natrafił na instrukcję, której się nie spodziewał. Najczęstszą przyczyną takich błędów, są literówki, np

while $var == 1) {
    echo 'ok';
}

Powyższy przykład wygeneruje błąd unexpected T_VARIABLE, ponieważ oczekiwanym znakiem jest otwierający nawias, a znakiem, na który natrafił interpreter jest znak zmiennej ($).

Błędy tego typu są trudne do wytropienia, ponieważ komunikat błędu zawiera numer wiersza inny niż ten, w którym wystąpił błąd. Interpreter informuje w ten sposób, że w podanym wierszu oczekiwał innego znaku. Dlatego też należy sprawdzić wiersz poprzedzający wystąpienie błędu.

Pełną listę identyfikatorów, zwanych tokenami, można znaleźć w dokumentacji: http://pl2.php.net/tokens

unexpected $end

Błąd tego typu pojawia się w przypadku, gdy interpreter osiągnął koniec pliku, a mimo to nie odnalazł jakiegoś symbolu. W zdecydowanej ilości przypadków błąd ten oznacza nie domknięcie nawiasu klamrowego.

while ($var == 1) {
    echo 'ok';

W przypadku skomplikowanych instrukcji warunkowych może być to nie lada wyzwanie.

unexpected ';'

Najczęstszą przyczyną powstawania tego błędu są literówki w kodzie lub zostawianie na później uzupełnienie jakiegoś fragmentu kodu.

$var1 = ;

Najczęstsze nieoczekiwane znaki to średnik (;), znak równości (=) lub nawiasy różnego typu.

Linki zewnętrzne


Jest to element FAQ, czyli zestawienia odpowiedzi na najczęściej zadawane pytania.

Zestawienie: Informacje | Podstawy PHP | Porady praktyczne | Pytania z forum | Bezpieczeństwo