echo $begrüßung;
- Ich habe ja die Variable var $meldung; definiert. Ich dachte dies muss ich machen, weil ich das Objet $this->meldung erstellt habe. Wenn ich diese Variable jedoch lösche funktioniert es trotzdem. Warum?
Ich schätze, weil man bei PHP die Variablen nicht initialisieren muss.
Richtig. PHP benötigt auch bei Klassen/Objekten keine anderen Handlungen, die eine Variable bekannt machen, außer dem erstmaligen Schreibzugriff.
Besser ist es, wenn du deine Variable trotzdem initialisierst, weil du dir sonst einen schlechten Stil angewöhnst.
var $variable; ist keine Initialisierung sondern nur eine Deklarierung. Initialisierung ist die erstmalige Zuweisung eines Wertes. Wenn Deklarierung und Initialisierung zusammen erledigt werden nennt man das Definieren: var $variable = wert;
Das Schlüsselwort var ist aber alter PHP4-Stil und sollte für neue, auf PHP 5 basierende Proejte nicht mehr verwendet werden, sondern die Zugriffsmodifikatoren public, protected oder private.
"Schlechter Stil" ist eine Sache. Eine andere ist, dass PHP das "nette" Feature register_globals kennt. Beides zusammengenommen (nicht initialisierte Variablen (Lesezugriffe vor initialisierendem Schreibzugriff) und register_globals=on) ergibt eine Sicherheitslücke.
echo "$verabschiedung $name";