Strings in PHP
Introductie
In PHP kan je stukken tekst gebruiken als parameter of waarde voor een variabele. Omdat een tekst bestaat uit een boel letters achter elkaar, heet dit een tekenreeks of een string.
$a = 'hello world'; echo $a;
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 "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:hello\nworld";
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.
Strings samenstellen
Als je meerdere strings hebt kun je die aan elkaar plakken met de concatenatie operator. Concatenatie is een moeilijk woord voor "aan elkaar plakken". Een operator ken je uit de wiskunde, zoals +, −, ×. Die operatoren werken echter op cijfers, terwijl de . operator op strings werkt.
$a = 3 + 6; $b = 'aard' . 'bei';
Met de . operator kunnen twee of meer strings aan elkaar geplakt worden om een nieuwe string op te leveren.
$a = 'Lekker'; $b = 'weer'; echo $a.$b.'hier'; // Output: LekkerweerhierJe kan in PHP ook cijfers aan strings plakken. Het cijfer wordt dan omgezet in een string voor het plakken. Echter, als je het resultaat van een rekensom wil plakken moet je ronde haakjes gebruiken:
$a = 3; echo 'waarde van $a: '.$a; echo '$a min 1 fout: '.$a - 1; // Output: -1 echo '$a min 1 goed: '.($a - 1); // Output: $a min 1 goed: 2
Samenvatting
- Enkele quotes
- Geen variabelen, backslash werkt alleen voor enkele quote
- Dubbele quotes
- Variabelen worden vervangen, backslash heeft speciale uitwerking op volgende teken
- Heredoc
- Zelfde als dubbele quotes. Begin met <<< WOORD, einde met WOORD; aan begin van nieuwe regel
- Strings aan elkaar plakken
- De concatenatie operator bestaande uit een punt.
$a = 'Hello'; $a = "Hello"; $a = <<< END Hello END; $a = 'Hello' . 'world';
Lees verder