Ik kan de fout echt niet vinden!

Heb je error_reporting op E_ALL staan? Nee? Meteen doen! Deze directive / functie op E_ALL zetten zorgt er namelijk voor dat je veel meer bruikbare debug-informatie krijgt. PHP is namelijk van zichzelf heel erg tolerant met bepaalde constructies, terwijl ze eigenlijk niet helemaal netjes zijn of al min of meer verboden zijn maar nog toegelaten worden wegens backward compatibility.

Als je zgn. notices ook toelaat in je error_reporting krijg je o.a. informatie over

* Het gebruik van niet-bestaande variabelen of elementen uit een array

Om te controleren of een bepaalde variabele of element bestaat gebruik je de functie isset().

Vooral zinvol bij tikfouten en controleren op malafide input
* Het gebruik van ongequote strings als array-indices

Ongequote strings worden enkel nog toegelaten bij wijze van backward compatibility. In principe is dit uit de taal geschrapt vanwege mogelijke conflicten met constanten gedefinieerd met define()

De manual zelf omschrijft het als volgt:

Notices are not printed by default, and indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. For example, trying to access the value of a variable which has not been set, or calling stat() on a file that doesn't exist.

Schrik dus niet als je je error_reporting ook op E_ALL hebt staan

« 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.