Ich habe den Code einfach mal in meinen Editor kopiert und mir angesehen, was in Zeile 44 passiert. Sieht aus, als wäre da eine Klammer zu viel…
Und genau das sagt auch die Meldung. Die aktuelle function der Klasse wird geschlossen - aber es folgt keine neue sondern ein if. Das geht natürlich nicht…
Tipp: Ein guter Editor hilft sehr. Mindestens mit Syntax Highlighting und Markierung von Klammergegenstücken.
Es gibt viele, mit unterschiedlichen Zielgruppen. gPHPedit, Aptana, Eclipse, Bluefish, Quanta Plus, Netbeans um nur ein paar kostenfreie zu nennen.
In Zeile 45 bekommt er einen Befehl, den er nicht erwartet hat. Meist ist dies ein vergessener Strichpunkt in der Zeile DAVOR. Das ist bei Dir nicht der Fall.
Du bist in einer „CLASS“-Definition, hierin darf es nur und ausschließlich Funktionen (function) und Variablendefinitionen (var) geben.
In Zeile 44 schließt Du die Function „UseDatabase“, und ab da geht es wie folgt weiter:
In Zeile 44 wird die vorherige Function geschlossen und es kommt dann eine IF-Abfrage in Zeile 46, die da nicht kommen darf weil sie nicht innerhalb einer function ist.
Wilde Vermutung: Du wolltest die Functioin „UseDatabase“ erst in Zeile 58 schließen. Also nimm entweder in Zeile 44 die Klammer raus oder ändere Zeile 39 ab, indem Du nach dem Else einen Befehlsblock öffnest den Du dann in Zeile 44 wieder schließt:
39:else{
Du schreibst sehr spartanischen Code, ich persönlich setze auch da Klammern wo es nicht nötig wäre (z.B. nach einem ELSE wenn nur ein Befehl folgt). Das macht den Code meiner Ansicht nach lesbarer. Aber das ist Geschmackssache.
Die Fehlermeldung ist eigentlich relativ eindeutig:
Parse error: syntax error, unexpected T_IF, expecting
T_FUNCTION in C:\xampp\htdocs\database.class on line 45
Übersetzt heißt das, du hast zuviele schließende Klammern. Deine Function ist beendet. In der Klassendefinition sind keine IF-Statetements erlaubt.
Je nachdem wo du deine Prüfung einbauen willst, musst du eine der schließenden Klammern entfernen oder eine neue Funktion beginnen…
Der Fehler ist in Zeile 45
Ddu hast hier eine Klasse definiert. Deine Kontrollstruktur steht einfach so da, die gehört in eine Methode hinein, in einer Klasse kann Code nicht einfach da stehen. Wie soll sonst der Code aufgerufen werden?
wenn Du die Klammer (Zeile 45) vor der if Abfrage entfernst giebt es keinen Fehler.
Was auch immer die Kasse soll!
Beim Strukturierten Schreiben hättest Du das auch gesehen.
MfG
Uwe