PHP je programovací jazyk a v každém programovacím jazyce vznikají chyby. Některé chyby se projeví ihned, jiné později, na některé bohužel přijdou až uživatelé vašich aplikací.
Chybová hlášení PHP
Jak to vypadá, když v PHP uděláte syntaktickou chybu, jste si jistě již stačili všimnout. Místo očekávaného výstupu se objeví chybové hlášení PHP s anglickým textem a označením místa výskytu chyby (jméno zdrojového souboru a číslo řádku). Také je vidět, že celé hlášení je možné rozdělit na 4 složky:
- typ a vážnost chyby, vytištěno tučně,
- popis chyby,
- zdroj chyby, tj. určení souboru, ve kterém k chybě došlo,
- řádek, na kterém PHP chybu zjistí.
Co jednotlivé složky znamenají? Jistě jste si všimli, že existují chyby s různou závažností. PHP rozlišuje celkem 11 úrovní chyb - jejich seznam najdete v následující tabulce.
| Konstanta |
Hodnota |
Význam |
| E_ERROR |
1 |
Fatální chyba za běhu aplikace, po níž nelze pokračovat dále. Zpracování skriptu je okamžitě ukončeno s patřičným chybovým hlášením. |
| E_WARNING |
2 |
Varování za běhu aplikace, lze pokračovat ve zpracování. Upozorňujeme na chyby, jež měly být zachyceny již dříve, jako je například neplatný formát předaného parametru. |
| E_PARSE |
4 |
Chyby zpracování - obvykle syntaktické chyby, jako například chybějící středník, ukončovací závorka apod. |
| E_NOTICE |
8 |
Připomínky vydávané za běhu aplikace (ještě méně závažné než varování). Objevuje se, pokud PHP narazí na něco, co může znamenat výskyt chyby, ale také nemusí - například použití neinicializované proměnné může být překlep. |
| E_CORE_ERROR |
16 |
Fatální chyby během vlastního startu PHP. Vážností odpovídá chybě E_ERROR. |
| E_CORE_WARNING |
32 |
Varování během vlastního startu PHP. Vážností odpovídá chybě E_WARNING. |
| E_COMPILE_ERROR |
64 |
Fatální chyby během kompilace, vyvolávané skriptovacím jádrem Zend. |
| E_COMPILE_WARNING |
128 |
Varování během kompilace, vyvolávané skriptovacím jádrem Zend. |
| E_USER_ERROR |
256 |
Chybová zpráva, generovaná uživatelem. |
| E_USER_WARNING |
512 |
Varování, generované uživatelem. |
| E_USER_NOTICE |
1024 |
Připomínka, generovaná uživatelem. |
Navíc je k dispozici konstanta E_ALL, která v sobě zahrnuje všechny výše uvedené chyby. Používá se pro určení typů chyb, jež budou zobrazovány apod.
Nejčastější chyby a jejich příčiny
Nejčastěji se budete nepochybně setkávat s prvními třemi až čtyřmi chybami. Standardně se totiž chyby E_NOTICE nezobrazují, takže si jich ani nevšimnete. Pokud byste je chtěli zobrazit, je třeba buď v konfiguračním souboru php.ini nastavit direktivu error_reporting na hodnotu obsahující také kontaktnu E_NOTICE, případně lze pro konkrétní skript změnit nastavení pomocí funkce error_reporting(), např. takto:
<?php
error_reporting(E_ALL);
?>
|