echo $begrüßung;
Ah ja, jetzt kommen auch noch folgende Fehlermeldungen:
- Creating default object from empty value
Wie es bei PHP mit einfachen Variablen üblich ist, werden auch Objekte beim ersten Zugriff erstellt. Da du sie einfach so ansprichst, statt ein Objekt einer bestimmten Klasse mit new zu erzeugen wird eine Standard-Klasse verwendet.
- Non-static method db::open() should not be called statically
Seit PHP5 sollten die neuen OOP-Features genutzt werden. PHP4 kannte keinen Unterschied beim Aufruf von Methoden. Jede konnte als statische Klassenmethode und als Objektmethode aufgerufen werden. PHP5 unterscheidet nun auch durch die Syntax beide Fälle.
Da hast du deine Klassendeklaration drin stehen. Erzeugst du darin auch ein Objekt $db?
Nein, [...]
So ein Objekt entsteht ja nicht aus heiteren Himmel. Instantiiere eins oder greife auf die statischen Klassenmethoden und -eigenschaften zu, dann aber mit der richtigen Syntax.
Hm, wie und wo kann ich lernen mir Singleton umzugehen, ich habe schon Im Manual nachgelesen,
aber ich bin noch nicht so vertraut mit OOP und darum ist noch vieles neu und unklar - wie Singleton.
Singleton ist ein Programmiermuster. So ein Pattern ist eine Vorgehensweise für immer wiederkehrende Probleme unabhängig von einer konkreten Implementation. Singleton ist so definiert, dass es genau eine Instanz von einem bestimmten Ding gibt. Eine weitere darf nicht erzeugt werden.
Eine konkrete Implementation ist oft so realisiert, dass der Konstruktor private ist und nicht direkt aufgerufen werden kann. Eine öffentliche Klassenmethode kennt eine Stelle, an der die eine Instanz liegt, z.B. in einer privaten statischen Eigenschaft. Beim ersten Aufruf dieser Methode liegt dort noch nichts und die Methode erstellt ein Objekt, das sie dort ablegt und auch zurückgibt. Alle weiteren Aufrufe dieser Methode geben dann immer wieder diese eine Instanz raus.
Der wichtigste Vorteil beim Zugriff über die Klassenmethode ist, dass dies in allen Scopes mit der gleichen Syntax erfolgen kann.
Kennt ihr gutes Online Tutorial für OOP und PHP?
Ist mir nicht direkt bekannt. Das PHP-Handbuch beschreibt schon mal alle neuen Features http://de.php.net/manual/en/language.oop5.php. Außerdem habe ich mir irgendwann mal http://www.professionelle-softwareentwicklung-mit-php5.de/ verlinkt, es aber nie gelesen. Ich vertraue jedoch dem Autor.
Die Syntax zu kennen ist nur ein kleiner Teil. Wichtig ist in meinen Augen auch, sich guten Stil anzueignen und zu schauen, wie andere ihre Probleme lösen. Oftmals gibt es schon Muster, wie man günstig an eine bestimmte Aufgabe herangeht.
Für MySQL bringt PHP ja schon die mysqli-Extension mit, die auch objektorientiert genutzt werden kann. Allerdings gibt es mit PDO einen datenbankübergreifenden Ansatz, der auch noch teilweise anwenderfreundlicher implementiert ist. Es ist im Prinzip also schon alles da, und "muss" nur noch um das Singleton-Pattern ergänzt werden. Wenn man die Grundlagen der OOP einigermaßen kennt, sind fertige Frameworks ansehenswert. Nicht nur, dass da bereits schon viel Funktionalität vorhanden ist, es lassen sich daraus auch noch jede Menge Lösungswege lernen.
echo "$verabschiedung $name";