Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Probleme mit Membervariablen

Guten morgen allerseits!

Ich hab ein Problem in Bezug auf Klassen und Membervariablen, hab mir dutzende Dokus angesehen, die das aber alle so beschreiben:

Code:                   In Zwischenablage kopieren (nur IE)
1">

Die Befüllung im Konstruktor soll stattfinden, weil ich das Serverabhängig machen will.

Habs auf folgenden Server getestet:

Server 1: PHP Version 5.1.1 (xamp)
Server 2: PHP Version 5.2.0-0.dotdeb.3 (selbstinstallierter LAMP)

Würde mich freuen wenn mir jemand weiterhelfen könnte...

Ähh hoppala... stimmt habs problem vergessen...

Die Funktion "function connection($bool)" kennt den Inhalt der Membervariablen nicht die im Konstruktor befüllt werden.
Hier gehts zum Orginal Eintrag "Probleme mit Membervariablen" im Forum

Antworten

Dir kann man nicht helfen, weil Du nicht mal beschreibst, was Dein Problem ist.


2.

Und dein konkretes Problem ist Welches !?

Sorry, wenn die Frage zu plump sein sollte ...

Edit : Hmm .. hätte ich doch gleich auf den Button geklickt .. ;)


3.

Zitat:
var $mysql_server;
Nicht php4 style und php5 style mischen..

Zeig mal den Quelltext, wie du connection benutzt.. Eigentlich müsste dein Code funktionieren.


4.

Wie kommst Du drauf, dass er die Variabeln nicht kennt? Hast Du das ausprobiert? Wenn ja wo? Kennst Du:

Standard-Antwort:
Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An den Anfang des Scriptes schreibt man die Zeile: error_reporting(E_ALL);
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt.



Außerdem: sowas hier:

Code:                   In Zwischenablage kopieren (nur IE)
2">

ist schlechtes OO-Design:

1. Globale Variablen haben im OO-Kontext nix verloren. Löse das über Membervariablen und Zugriffsmethoden.
2. Eine Fallunterscheidung über eine gesamte Methode ist irgendwie dämlich, benutze eine "open" und eine "close"-Methode. Das beides zu verquicken machts nur unnötig unübersichtlich.


5.

@BenniG.
Die Funktion "connection($bool)" wird ausschließlich wie folgt aufgerufen:
Code:                   In Zwischenablage kopieren (nur IE)
3">

@oimel
Ich hab mir natürlich die Variablen ausgeben lassen und zwar zum einen nach der Befüllung im Header (da haben die Variablen den gewünschten Wert ) und zum anderen in der Funktion "function connection($bool)" (hier existieren die Variablen, haben aber keinen Wert)

Zur "function connection($bool)" an:
Ich finde dass, das durchaus sinnvolles OO_Design ist. Ich könnte natürlich auch jede Zeile einzeln in eine Funktion packen, man sollte sich nur immer auch die Frage stellen was ist sinnvoll und was nicht. Ich sehe bei dieser Funktion echt kein Problem. Bei der Globalen Variable geb ich Dir absolut Recht, ist wirklich nicht sauber, die werd ich mir als nächstes vorknüpfen. Bin eben noch am lernen ;)

Zur Standardantwort:
Da ist echt 'n Zufall genau die Punkte 1-6 haben mich bewogen Punkt 7 auszuführen


6.

Zitat:
spaff postete
Ich hab mir natürlich die Variablen ausgeben lassen und zwar zum einen nach der Befüllung im Header (da haben die Variablen den gewünschten Wert ) und zum anderen in der Funktion "function connection($bool)" (hier existieren die Variablen, haben aber keinen Wert)

Wenn das wirklich so wäre, dann hätte PHP in allen 5er Versionen einen so heftigen Bug, dass wir das schon längst bemerkt hätten ;) Du wirst wohl irgendwo anders einen Fehler gemacht haben, aber wo, lässt sich nicht sehen.

Zitat:
Zur "function connection($bool)" an:
Ich finde dass, das durchaus sinnvolles OO_Design ist. Ich könnte natürlich auch jede Zeile einzeln in eine Funktion packen, man sollte sich nur immer auch die Frage stellen was ist sinnvoll und was nicht. Ich sehe bei dieser Funktion echt kein Problem.
Gutes OO-Design ist keine Geschmacksfrage. Aber schön, wenn Du da kein Problem siehst, kannst Du damit die allg. Lehrmeinung natürlich überstimmen ;)


7.

OK, will mir ja helfen lassen, deshalb hab ichs mal umgebaut... denke so sollte es dann korrekt sein.

Code:                   In Zwischenablage kopieren (nur IE)
4">




8.

Und auch wenns immernoch nix mit dem eigentlichen Problem zu tun hat: Guck die mal Exceptions an, die machen Dein Leben einfacher und ersetzen das "die".

Aber was ist denn jetzt mit dem Variablen?


Hier gehts zum Orginal Eintrag "Probleme mit Membervariablen" im Forum
 
phpforum.de | Impressum