Weergave en interpretatie van PHP fouten

Voordat we daadwerkelijk kunnen beginnen met het toepassen van foutafhandeling is het van belang dat PHP ook daadwerkelijk fouten weergeeft. Om hiervoor te zorgen plaatsen we van nu af aan het volgende stukje code boven elk script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>

De eerste regel zorgt ervoor dat de 'display_errors' instelling in php.ini aangezet wordt waardoor PHP fouten zal weergeven. De tweede regel zorgt ervoor dat alle mogelijke fouten die optreden worden weergegeven. Later in deze tutorial bespreek ik de mogelijke instellingen die je kunt doen.

Verschillende foutmeldingen
Er zijn verschillende foutmeldingen die PHP terug kan geven, maar de standaard foutmeldingen hebben altijd dezelfde syntax:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
[soort fout]: [foutmelding] in [bestand] on line [regelnummer]

Mocht je nog niet bekend zijn met de foutmeldingen die PHP genereert, dan zal daar in de loop van deze tutorial zeker verandering in komen. Hetgeen voor nu belangrijk is, zijn de verschillende soorten fouten die op kunnen treden:

Parse error - Er zit een fout in de syntax van je php script
Notice - PHP heeft iets gevonden dat een fout zou kunnen zijn, maar niet per se is
Warning - Een belangrijke maar niet fatale fout. Het script wordt verder uitgevoerd
Fatal error - Een belangrijke en fatale fout. Het script wordt niet verder uitgevoerd

Om een en ander wat te verduidelijken volgt hier een scriptje dat een foutmelding zal geven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);

echo 'Foo'
echo 'Bar';
?>

De foutmelding die gegeven wordt is een 'parse error':
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in C:\wamp\www\test.php on line 6

Aan deze foutmelding zie je dat er op regel 6 in het bestand test.php iets fout gegaan is. PHP meldt dat de echo die op die regel staat niet verwacht wordt. Dat komt overduidelijk doordat de echo op regel 5 niet met een ; afgesloten wordt.

« Lees de omschrijving en reacties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.