Jak czytać błędy PHP

🎯 Po tej lekcji będziesz umieć znaleźć i naprawić błąd na podstawie komunikatu PHP.

Każdy programista popełnia błędy — to normalne. Sztuka polega na tym, żeby szybko je znaleźć i naprawić. PHP jest w tym pomocny: daje konkretne komunikaty z numerem linii i opisem problemu.

Włącz wyświetlanie błędów

Domyślnie PHP może ukrywać błędy. Podczas nauki i developmentu chcesz je widzieć. Na początku swojego pliku dodaj:

<?php
declare(strict_types=1);

ini_set('display_errors', '1');
error_reporting(E_ALL);

echo 'Cześć, Ola!';

Te dwie linie sprawią, że PHP pokaże każdy błąd w przeglądarce — zamiast wyświetlać pustą stronę.

⚠️ Uwaga: Nigdy nie pokazuj błędów użytkownikom na produkcji — mogą zdradzić strukturę aplikacji i ułatwić atak. Wyświetlanie błędów włączaj wyłącznie lokalnie, podczas developmentu.

Typy błędów PHP

Parse error — błąd składni

To najczęstszy błąd na początku nauki. PHP nie może nawet uruchomić skryptu, bo napotyka coś, czego nie rozumie:

Parse error: syntax error, unexpected token "echo" in /var/www/index.php on line 5

Najczęstsza przyczyna: brakujący średnik na końcu poprzedniej linii:

<?php
declare(strict_types=1);

echo 'Cześć, Ola!'  // brakuje średnika!
echo 'Miło Cię poznać.';

PHP mówi, że błąd jest w linii 5 (przy echo), ale faktyczny problem jest w linii 4 — brak średnika. Zawsze sprawdzaj linię wskazaną w błędzie i linię tuż powyżej.

Warning — ostrzeżenie

Warning (ostrzeżenie) to mniej poważny błąd — skrypt dalej działa, ale coś jest nie tak:

Warning: Undefined variable $imie in /var/www/index.php on line 5

Skrypt wykona się do końca, ale z nieoczekiwanym wynikiem.

Notice — uwaga

Notice to łagodny poziom informacyjny. Ważna rzecz dla PHP 8: w PHP 8.0 wiele dawnych Notices (np. użycie niezdefiniowanej zmiennej) zostało awansowanych do rangi Warning. Dlatego jako początkujący będziesz najczęściej spotykać właśnie Warning i Error — Notices pojawiają się rzadziej i dotyczą bardziej zaawansowanych przypadków. Przy error_reporting(E_ALL) zobaczysz je wszystkie.

Jak czytać komunikat błędu

Weźmy przykładowy komunikat:

Parse error: syntax error, unexpected end of file in /Users/kuba/projekt/index.php on line 9

Czytaj go od prawej do lewej:

  1. on line 9 — błąd jest w lub tuż przed linią 9.
  2. /Users/kuba/projekt/index.php — nazwa pliku z błędem.
  3. syntax error, unexpected end of file — opis: PHP doszedł do końca pliku i czegoś brakuje (często niezamknięty nawias lub brakujący średnik).
  4. Parse error — typ błędu: składniowy.

Krok po kroku — napraw błąd

  1. Otwórz plik wskazany w komunikacie.
  2. Przejdź do wskazanej linii i sprawdź linię powyżej.
  3. Szukaj: brakującego średnika ;, niezamkniętego cudzysłowu ' lub nawiasu.
  4. Popraw i odśwież stronę.
💡 Wskazówka: Jeśli nie możesz znaleźć błędu, spróbuj zakomentować podejrzane linie i uruchamiaj skrypt, aż błąd zniknie — wtedy wiesz, gdzie szukać.

Sprawdź się

Co oznacza 'Parse error' w komunikacie PHP?

Jak włączysz wyświetlanie błędów w pliku PHP podczas developmentu?

Ćwiczenie

Usuń celowo średnik z końca jednej instrukcji echo i uruchom skrypt. Przeczytaj błąd, znajdź numer linii i napraw go.

Pokaż rozwiązanie
<?php
declare(strict_types=1);

// Błędna wersja:
// echo 'Cześć'
// echo 'Ola!';

// Poprawiona wersja:
echo 'Cześć';
echo 'Ola!';