PHP:
Een string interpoleren
Hoe:
In PHP kunt u strings interpoleren met behulp van dubbele aanhalingstekens of heredoc-syntax:
$name = "World";
echo "Hallo, $name!"; // Uitvoer: Hallo, World!
// Krullende haakjes gebruiken voor meer complexe variabelen
$object = new stdClass();
$object->greeting = "Hallo";
echo "{$object->greeting}, $name!"; // Uitvoer: Hallo, World!
// Heredoc-syntax voor meerregelige strings
$heredoc = <<<EOT
Dit is een string die $name bevat.
Je kunt hier zoveel schrijven als je wilt.
EOT;
echo $heredoc; // Uitvoer: Dit is een string die World bevat.
Opmerking: Enkele aanhalingstekens zullen niet interpoleren:
echo 'Hallo, $name!'; // Uitvoer: Hallo, $name!
Diepgaande Verkenning
Voordat PHP interpolatie introduceerde, was concatenatie met de puntoperator (.) de manier om te gaan. Bijvoorbeeld:
echo 'Hallo, ' . $name . '!';
Interpolatie stroomlijnt dit door de variabele direct binnen de string te parsen.
Stringinterpolatie bestaat sinds PHP 4, maar het gebruik van complexe expressies binnen krullende haakjes werd flexibeler met PHP 7. Met deze verbeteringen maakte PHP het gemakkelijker om elke variabele, inclusief objecteigenschappen en array-elementen, binnen een string in te bedden.
Er bestaan alternatieven voor interpolatie, zoals het gebruik van sprintf()
voor geformatteerde strings of implode()
voor arrays. Deze kunnen soms meer controle over de stringformat geven, vooral voor lokalisatie en complexe structuren.
Implementatiegewijs zoekt PHP naar variabelen binnen strings wanneer deze tussen dubbele aanhalingstekens of in heredoc-syntax staan en vervangt ze door de waarde van de variabele. De parser negeert het dollarteken ($) in enkelvoudige aanhalingstekens en behandelt het als een gewoon teken.
Zie Ook
- PHP: Strings - Officiële PHP-documentatie over strings.
- PHP: Heredoc syntax - Gedetailleerde sectie van de PHP-handleiding over Heredoc.
- PHP: String Operators - Meer over stringconcatenatie en de puntoperator.
- PHP: sprintf - Documentatie van de
sprintf()
functie voor stringformattering.