Möchte man Konstanten in Strings ersetzen so muss man normalerweise die
Zeichenkette mit Hilfe des Vereinigungs(concatenation)-Operators '.' zusammensetzen.
Also z.B. so
$a = 'Hallo '.cNAME.' wie ist das Wetter in '.cPLACE.'?';
Bei heredoc-Abschnitten gibt es keine Möglichkeit die Konstanten direkt
einzubinden.
Aber mit dem folgenden Trick gelingt auch das.
Hier wird entweder ein Objekt oder ein assoziatives Array benutzt.
<?php
class DefinedConstants
{
function DefinedConstants()
{
$tmp = get_defined_constants();
foreach ($tmp as $k => $v){
$this->$k = $v;
}
}
} /* end class */
define ('cNAME', 'Peter');
define ('cPLACE', 'Sydney');
$foo = new DefinedConstants;
$test = <<< EOT
Hallo $foo->cNAME
wie ist das Wetter in $foo->cPLACE?
<hr>
EOT;
echo $test;
// Oder man nutzt ein assoziatives Array
$constants = get_defined_constants();
$test = <<< EOT
Hallo {$constants['cNAME']}
wie ist das Wetter in {$constants['cPLACE']}?
<hr>
EOT;
echo $test;
?>