Hallo Robert,
wenn Du eine Notice bekommst, solltest Du dringend dein PHP updaten. Das ist nämlich mit PHP 7 zur Warning geworden, und ab PHP 8 zum Error.
define("Moin", "Hallo");
echo Moin Moin;
ist aber auch vor PHP 7 schon ein Syntaxfehler, weil die Konstante einfach 1:1 durch den definierten Wert ersetzt und zu
echo "Hallo" "Hallo";
wird. Es hat ja niemand behauptet, dass echo Moin;
sinnvoller Code in PHP gewesen wäre. Damit wird man auch keine Altlasten haben. Das passiert eher bei assoziativen Arrays; ich hatte vor Jahren ein Altprojekt auf PHP, das konsequent $arr[name]
statt $arr['name']
verwendete. In Tausenden von Zeilen…
Frust fact: Beim String Parsing ist die Notation ohne Anführungszeichen nach wie vor legal. Aber nur in der simple syntax. Die complex syntax will es mit Anführungszeichen:
$x = [ "foo" => 42 ];
echo "Die Antwort ist $x[foo]";
echo "Die Antwort ist { $x['foo'] }";
Und es ist nicht nur legal, es ist auch noch Pflicht. Beide Echos sind falsch:
$x = [ "foo" => 42 ];
echo "Die Antwort ist $x['foo']";
echo "Die Antwort ist { $x[foo] }";
Rolf
sumpsi - posui - obstruxi