6.4 Een probleempje met aanhalingstekens

Top  Previous  Next

Wanneer je op het scherm een enkel aanhalingsteken wilt tonen heb je een klein probleempje:

Echo  ‘train  ’s ochtends altijd rustig’;

Dit geeft immers een foutmelding omdat de tekst stopt bij de apostrof voor de s en PHP dan een vreemd commando (s ochtends) tegen komt.

De oplossing kan eenvoudig door dubbele en enkele aanhalingstekens te gebruiken:

Echo  “train  ’s ochtends altijd rustig”;

 

De ander oplossing is om de apostrof te ‘escapen’. Dit kan door er een slash voor te zetten. Deze slash geeft aan dat het geen begin of einde is van een string maar een aanhalingsteken dat, gewoon, in de tekst voorkomt:

Echo  ‘train \ ’s ochtends altijd rustig’;

 

Dit is met name van belang om te onthouden wanneer je HTML-tags wilt gebruiken die attributen hebben. Neem als voorbeeld <table border=”1”>. Deze HTML code opent een tabel waarbij de randen met een dikte van 1 worden weergegeven.

 

In PHP wordt dit: echo ‘<table border=”1”>’;

 

Wil je echter een variabele opnemen, dan moet de tekst met dubbele aanhalingstekens worden omsloten:  echo “<table border=”$dikte”>”;

Dit gaat dan mis, dus is het handig om te gebruiken: echo “<table border=’$dikte’>”;

Ook al staat $dikte tussen enkele aanhalingstekens, de waarde van de variabele wordt gebruikt omdat, uiteindelijk, de $dikte tussen de dubbele openings en einde aanhalingstekens staat.

 

Wanneer je er voor kiest om volgens de standaard HTML te werken, dan moet de waarde van het attribuut bord tussen “ “.

Dan heb je geen andere optie om te escapen:
echo “<table border=\”$dikte\ ”>”;

 

Het ziet er wat ingewikkeld uit maar als je weet wat de \ voor betekenis heeft valt het eigenlijk ook wel weer mee.