dedlfix: stringzeile in php - warum geht das?

Beitrag lesen

echo $begrüßung;

warum funktioniert:

<?php

echo "hallo";
asdf
?>


>   
> Erst eine zweite Stringzeile  
>   
> ~~~php

<?php  

> echo "hallo";  
> asdf  
> asdf  
> ?>

bringt den Fehler, den ich bereits beim ersten Beispiel erwartet hätte.

Dein asdf wird als Konstante interpretiert. Da du diese Konstante nirgends definiert hast, ist PHP so frei, stattdessen anzunehmen, du hättest einen String verwenden wollen. Das teilt es dir mittels einer (durch die Default-Einstellung des Error-Reportings allerdings unterdrückten) Notice-Meldung mit. Siehe Antwort von Blaubart. Ein String alleine ist ein durchaus gültiger Ausdruck, er hat nur keine weiteren Auswirkungen. Zwei Ausdrücke hintereinander, ohne Operator oder Befehlsende (;) dazwischen, ist ungültige PHP-Syntax. Vor dem schließenden ?> ist die Notation eines Befehlsende-Semikolons nicht nötig, was auch noch ein Grund ist, warum dein erstes Beispiel keinen Fehler gebracht hat.

echo "$verabschiedung $name";