Vars in Strings

Natuurlijk weet iedereen hier wel hoe PHP ongeveer werkt, maar er zijn nog wat onenigheden over strings. De 1 zegt dat het zo moet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo 'Dit is een string met de var ' . $_SERVER['PHP_SELF'];
?>


De ander zegt dat het zo moet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo "Dit is een string met de var $_SERVER[PHP_SELF]";
?>


Of zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo "Dit is een string met de var " . $_SERVER['PHP_SELF'];
?>


Ik kan je vertellen dat de drie bovenstaande voorbeelden, allemaal goed zijn. Alleen is er natuurlijk wel een voorkeur methode. Zelf gebruikte ik altijd het 3e voorbeeld. Alleen weet ik nu ook, dat het een beetje overbodig is om dit zo te doen. Het is veel typwerk en je moet elke keer dat er een var in een string voorkomt de string afsluiten en de variabele plaatsen (buiten de quotes). Wanneer je een string begint
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo "..."; ?>
kun je de variabelen die hierin moeten, er gewoon letterlijk in zetten (bijv.:)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo "Dit is een string met de var $_SERVER[PHP_SELF]";
?>


PHP ziet dat je een string begint en omdat $_SERVER[PHP_SELF] in een string moet staan, hoef je het dus niet te escapen (d.m.v. " . $_SERVER['PHP_SELF'] . "). Dit is eigenlijk hetzelfde als met andere $variabelen.

Eigenlijk is het 'nog' beter als je het 1e voorbeeld gebruikt. Wanneer je double-quotes (") gebruikt, zal PHP bij elke karakter kijken, is het een dollarteken, is het een \n enz. Met single-quote (') zal PHP hier niet over nadenken en zal hij gewoon alles letterlijk overnemen wat jij intypt. Hij checked nu niet voor vars of dergelijke omdat PHP weet dat hier geen vars in voorkomen. Bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo 'Dit is een string met de var ' . $_SERVER['PHP_SELF'];
?>


Eigenlijk zou je het dus moeten doen zoals bovenstaand voorbeeld. Je ziet: ' . $_SERVER['PHP_SELF']; Dit moet dus omdat wanneer je single quotes gebruikt aan moet geven dat er een var komt. Dat doe je dus door het te onderbreken via ' . Het maakt echter niet ontzettend veel uit of je nou double-quotes of single-quotes gebruikt. Zelf zou ik double-quotes gebruiken zodat je jezelf veel typwerk bespaart. En het mag tenslotte, dus waarom zou je het niet doen ook al is het 'net' iets langzamer? Wanneer je erg eigenwijs was en bewijzen wil zien, kun je bovenstaande voorbeelden overnemen en het het volgende helemaal bovenaan je pagina plaatsen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
error_reporting(E_ALL);
?>


error_reporting(E_ALL) zorgt ervoor dat ELKE foutmelding wordt weergeven en niet alleen cruciale foutmeldingen zoals een parse error.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Vars in Strings
  2. Variabelen vast aan een woord
  3. Value als var naam
  4. Conclusie

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.