dedlfix: OOP und Gültigkeitsbereich von Variablen

Beitrag lesen

echo $begrüßung;

Nur was bitte habe ihc falsch gemacht, wenn diese Fehlermeldung kommt:
Fatal error: Call to a member function connect() on a non-object in C:\xampp\htdocs\nedias\classes.php on line 23 ??

Dein Problem, auch das der Folgefrage, hat weniger was mit OOP zu tun als vielmehr mit dem Gültigkeitsbereich von Variablen. Innerhalb einer Funktion stehen außerhalb selbiger generierte Variablen nicht zur Verfügung. Das gilt ebenfalls für OOP. Nun könnte man mittels global-Keyword globale Variablen innerhalb der Funktion/Methode sichtbar machen, aber dafür gibt es unter OOP bessere Ansätze. Für Datenbankverbindungsobjekte bietet sich das Singleton-Pattern an.

Gerade bei OOP solltest du strikt darauf achten, dass Objekte selbständig arbeiten können, ohne dass sie irgendwelche Variablen anderer Scopes verwenden müssen. Du erzeugst sonst wieder nur Spaghetti- statt OOP-Code.

Die wirklichen Ursachen beider Fehler wären dir übrigens angezeigt worden, wenn du das error_reporting auf E_ALL stehen gehabt hättest. Dann hättest du eine Notice-Meldung bekommen, dass du auf nicht deklarierte Variablen zuzugreifen versuchst. E_ALL ist beim Entwickeln immer eine gute Idee.

class Board  {
     var $Subboard = array();

Das Schlüsselwort var ist veraltete PHP-4-Syntax. Mittlerweile steht es zwar wieder gleichberechtigt neben public, trotzdem ist es empfehlenswert, die neuen PHP-5-Sichtbarkeitsmodifizierer zu verwenden.

echo "$verabschiedung $name";