Tutorials

Vars en Strings

Hoe gebruik je nou precies vars in strings? En wat kun je allemaal met variabelen?

Pagina 1

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:

<?
echo 'Dit is een string met de var ' . $_SERVER['PHP_SELF'];
?>

De ander zegt dat het zo moet:

<?
echo "Dit is een string met de var $_SERVER[PHP_SELF]";
?>

Of zo:

<?
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 <? echo "..."; ?> kun je de variabelen die hierin moeten, er gewoon letterlijk in zetten (bijv.:)

<?
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:

<?
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:

<?
error_reporting(E_ALL);
?>

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

Variabelen vast aan een woord

Soms heb je weleens dat je een variabele vast aan een woord wil zetten. Normaal zou je de string dan afsluiten en via een . de woorden aan elkaar vast zetten. Dat hoeft niet. Het kan namelijk ook zo:

<?
$variabele = "VAR";
echo "Dit is een string met een ${variabele}vast aan een woord.";
?>

Wanneer je dit zo doet, dan zie je dus: VARvast, en geeft geen foutmeldingen door de error_reporting omdat dit mag! Dit scheelt je dus ook weer wat typwerk omdat je de string niet hoeft af te sluiten.

Het kan natuurlijk ook zo:

<?
$variabele = "VAR";
echo '<p>Dit is een string met een ' . $variabele . 'vast aan een woord.';
?>

Het nadeel hiervan is dat het meer typwerk is, en het eerste voorbeeld mag ook maar is door de double-quotes weer 'iets' langzamer maar ik zou het wel gebruiken omdat het typwerk scheelt en je zo sneller je php scriptjes af hebt. PHP.net gebruikt immers ook double-quotes en die zullen toch echt wel weten hoe het moet!
Pagina 3

Value als var naam

Soms wil je dat de inhoud van een variabele een variabele op zich wordt. Ik heb het zelf ook wel eens gehad en dan snapte ik niet hoe je dit nou moest doen. Daarom even een korte uitleg.

<?
//--- zet een var
$var = "bas";
?>

Nu wil je dat er een variabele ontstaat genaamd '$bas'. Dit kun je simpel als volgt doen. Je kunt het zo doen:

<?
$$var = "iets";
?>

Of

<?
${$var} = "iets";
?>

Zelf zou ik het eerste voorbeeld gebruiken, weer i.v.m. iets minder werk en het is beide correct PHP.
Pagina 4

Conclusie

Gebruik niet overbodige code en hou je aan de PHP standaarden! Je zorgt zo dat je scriptjes optimaal werken en gebruikt worden zoals PHP bedoeld is. Deze tutorial is slechts een fractie van wat er nog allemaal meer mogelijk is. Binnenkort misschien een uitbreiding, hou me er niet aan vast ;) Ik hoop dat je er wat aan gehad hebt!

Reacties

0
Nog geen reacties.