Verktyg för felsökning
Ställ in vilka fel som visas och skriv ut variabler för att se vad koden faktiskt gör.
Inställningar i php.ini
Två inställningar i php.ini styr felhanteringen:
error_reporting = E_ALL
display_errors = On
error_reportinganger vilka fel som ska rapporteras.E_ALLbetyder alla.display_errorsanger om felen ska visas i utskriften.
Du skapade php.ini från php.ini-development, där båda redan är påslagna. Kom ihåg att starta om php -S efter ändringar.
På en publik webbplats ska
display_errorsvara avstängt. Felmeddelanden avslöjar filnamn och kod för besökarna. Där skrivs felen till en loggfil i stället.
Skriv ut variabler
Det snabbaste sättet att felsöka är att skriva ut det du undrar över.
| Kommando | Visar |
|---|---|
echo |
Ett enkelt värde |
print_r($array) |
Innehållet i en array, lätt att läsa |
var_dump($variabel) |
Värdet och typen, även för null, false och tomma strängar |
Lägg märke till att var_dump visar att åldern är en sträng, inte ett tal. Sådant ser du inte med echo.
På en webbsida blir utskriften lättare att läsa inom <pre>:
echo "<pre>";
var_dump($_POST);
echo "</pre>";
Felsök logiska fel
- Använd
===i stället för==, så att typerna också jämförs. - Skriv ut villkoret:
var_dump($alder >= 18);visar om det är sant eller falskt. - Lägg in spårutskrifter:
echo "Kom hit";visar vilken väg koden tar. - Kontrollera indata först:
var_dump($_POST);visar vad formuläret faktiskt skickade.
Xdebug
Xdebug är ett tillägg som gör det möjligt att sätta brytpunkter i koden och stega igenom den rad för rad i VS Code. Vi återkommer till Xdebug när det finns stöd för PHP 8.5.
Övning (10 min)
Gör detta i din egen PHP-installation:
- Öppna
php.inioch kontrolleraerror_reportingochdisplay_errors. - Tvinga fram ett felmeddelande av varje typ: Parse error, Warning och Fatal error.
- Testa
print_rochvar_dumppå en array och på$_SERVER.
Klar när
- Du vet var inställningarna för felvisning finns.
- Du kan förklara skillnaden mellan
print_rochvar_dump.