Strings maken

Een string kan op drie manieren worden opgegeven:

  • Dubbele quotes ("aanhalingstekens")
  • Enkele quotes ('apostrof')
  • Heredoc

Dubbele quotes

$b = "world";
$a = "hello $b";

Een string kan tussen dubbele quotes worden gezet. Alle tekst tussen de quotes komt in de string, maar sommige speciale woorden worden veranderd:

  • Variabelen worden vervangen door hun waarde
  • Met een backslash (\) kan er een speciaal teken worden ingevoegd

Variabelen

Binnen dubbele quotes worden variabelenamen vervangen door hun waarde:

$b = "world";
echo "hello $b";
De output hiervan is "hello world", omdat de tekst $b is vervangen door de waarde van variabele $b.

Dit vervangen van variabelen werkt ook met arrays en objecten:

$b = array("world");
echo "hello $b[0]";
De tekst $b[0] wordt nu vervangen door het eerste element uit de array $b.

Soms als je tekst en variabelenamen mengt is het niet duidelijk waar de naam van de variabele op houdt. Dit kan je aangeven met accolades:

$place = "world";
echo "I have been to many $places."; // Werkt niet, want $places bestaat niet
echo "I have been to many {$place}s."; // Werkt wel

Backslash

Een backslash kan gebruikt worden om speciale tekens in de string te stoppen:

echo "
hello\nworld
";
De \n in dit voorbeeld wordt vervangen door een newline, waardoor "world" op de volgende regel komt. Er zijn nog meer backslash combinaties die een speciaal teken opleveren. De belangrijkste daarvan is de backslash zelf. Omdat de backslash een speciale uitwerking heeft op het teken dat er achter komt, moet je iets speciaals doen als je een letterlijke backslash in je string wilt hebben: je moet dan twee backslashes gebruiken:
echo "Hello \\ world"; // print Hello \ world

Enkele quotes

Binnen enkele quotes worden variabele namen en backslashes niet als iets bijzonders gezien, behalve dan dat een backslash gebruikt kan worden om een enkele quote te gebruiken:

$place = 'world';
echo 'Hello $place.'; // Output: Hello $place. 
Omdat we hier enkele quotes gebruiken, wordt $place niet vervangen door "world".

Heredoc

Een zeldzaam gebruikte manier om grotere stukken tekst in een string te stoppen is de heredoc. Deze bestaat uit drie haakjes, gevolgd door een woord. Hierna komt de tekst voor in de string, beeindigd door het woord.

echo <<< EINDE
Hello world.
Hallo allemaal.
EINDE;
Let wel op,
  • het afsluitende woord (EINDE) moet aan het begin van de regel staan, dus geen spaties of tabs er voor;
  • na het afsluitende woord (EINDE) moet een puntkomma, net als na elke andere PHP regel.