Jörg: php, Funktionen, Klassen und Fehlersuche

Beitrag lesen

Hallo Rolf,

da hast Du Funktionen und Klassen vermutlich komplett mistverstanden.

Funktionen sicher nicht, aber Klasse wohl.

Wenn Du das nicht zu sehen bekommen hast, ist dein Error-Reporting nicht korrekt eingeschaltet.

Was soll ich denn machen?

error_reporting(E_ALL);
ini_set('display_errors','ON');

Das blöde ist, dass man das bei meinem Provider auch noch im Konfigurationsmenü einstellen kann, dann aber global, was ich nicht will.

Ok, habs mittlerweile gefunden. Man muss im Konfigmenü des Providers erstmal freigeben, dass Scripte die globalen Einstellungen überschreiben dürfen arghs

Eine Funktion ist ein Stück Code mit einem Namen, das Du wiederverwendest. Eine Klasse ist ein Klumpen aus Variablen und Funktionen, die Du wiederverwendest. Deswegen wird beides separat definiert (am Anfang oder am Ende).

Habe jetzt alle Klassen und Funktionen an den Scriptanfang geschrieben, Scriptende hatte zuvor nicht funktioniert. Keine Ahnung, warum. Jedenfalls schlug eine Query fehl, was sie nicht tut, wenn ich alle Funktionen und Klassen an den Scriptanfang stelle. Und ich bin grad zu entnervt, diesem Phänomen auf den Grund zu gehen.

PHP ist die Reihenfolge egal; du kannst Funktionen auch am Ende definieren, er findest sie trotzdem, weil er den Code zweimal durchliest. Zuerst um ihn in Bytecode zu compilieren, und dann, um ihn auszuführen.

Trotzdem schön, zu wissen, ich habe mich immer gefragt, ob das einen unterschied macht.

Für dein Beispiel heißt das: Definiere die Funktion und die Klasse separat. Schachtele sie nicht ineinander. Du hast dann drei Bereiche:

  • Hauptprogramm
  • Funktion Blablub
  • Klasse PDF_Table_Header und ihre Methoden

Habe ich gemacht und siehe da: Es funkt. 👍😊

Du solltest die Session auch nicht in Blablub starten. Sowas tut man nur einmal zu Programmbeginn, oder man definiert einen Autostart für die Session.

Mache ich auch normalerweise. Hatte das jetzt hier mit reingenommen wegen der Verständlichkeit.

Danke, Rolf! Jetzt läuft "der Kas" und ich bin echt froh drum. Das ist ein Riesenscript mit fast 5000 Codezeilen, darin finde ich mich nicht so ganz easy zurecht 😉 Entsprechend entnervt bin ich gerade. Aber meine Nerven finde ich wieder und dann läuft das Teil ja immer noch lol

Jörg