Parse errors

Het debuggen is meestal iets wat erg irritant kan zijn wanneer je al uren met het script bezig bent. Alles lijkt op elkaar en op het laatst weet je geen raad meer.

Om het debug probleem op te lossen, raad ik je ten zeerste een PHP editor aan, waarbij de lijn nummers worden aangegeven! Met PHP is het namelijk zo dat wanneer je ergens een fout hebt staan, de regel nummer meestal ook wordt meegegeven. Vandaar dat dit erg handig is.

Wanneer je een foutmelding krijgt zal dit in de meeste gevallen een parse error zijn. Dit houdt in dat het vrijwel altijd ligt aan een ; vergeten, een akkolade ({ of }) vergeten af te sluiten of bijvoorbeeld een ) of ( te weinig bij een statement. Kijk hier eerst goed na voordat je vragen gaat stellen!

Het volgende zal een parse error geven. Ten eerste omdat achter 'is_numeric($foo)' een ) is vergeten. En ten tweede omdat bij 'Toon dit anders' een puntkomma (;) is vergeten.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
    //-- vergelijk
    if ($var == 'foo' && is_numeric($foo)
    {

        //-- toon dit wanneer de vergelijking goed is
        echo "Toon dit";
    }

    //-- is de vergelijking niet goed, toon dit
    else
        echo "Toon dit anders"    
?>


Het volgende zou dus wel goed zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
    //-- vergelijk
    if ($var == 'foo' && is_numeric($foo))
    {

        //-- toon dit wanneer de vergelijking goed is
        echo "Toon dit";
    }

    //-- is de vergelijking niet goed, toon dit
    else
        echo "Toon dit anders";
?>


Misschien is het een beetje verwarrend, maar bij de 'else' zijn de akkolades er niet. Dit is omdat er maar 1 regel hoeft worden getoond. In dat geval hoef je geen akkolades te gebruiken en kun je het dus gewoon doen zoals te zien is bij het voorbeeld. Als onder 'echo "Toon dit anders";' nog een regel staat, wordt deze sowieso laten zien omdat dat BUITEN de else valt. Goed onthouden, alleen met 1 regel onder een if of else kun je de akkolades weglaten.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Netjes en overzichtelijk programmeren
  2. Parse errors
  3. MySQL errors
  4. Variabelen? Superglobals!

PHP tutorial opties

 
 

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.