![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
Innerhalb einer Methode einer Klassenvariablen einer anderen Klasse etwas zuweisen ohne die Klasse vorher instanziert zu haben. Wuah hab ich ein Brett vorm Kopf, aber selten dick. Mein Problem ist besser am Beispiel zu erklären. Ich hab ne Klasse "Auth", die mein Login checkt und bei falschen Daten der Error-Klasse "Error" und der darin enthaltenen Klassenvariable $_error (Array) einen String übergeben und anhängen soll ('Fehlerhafte Logindaten'). Klappt alles nicht, sprich das Array bleibt leer. Mein Quellcode ohne Fehlermeldungen: index.php PHP-Code: PHP-Code: PHP-Code: Code: Notice: Undefined variable: ErrorHandling in ...\framework\Auth.php on line 22 Fatal error: Call to a member function pushError() on a non-object in ...\framework\Auth.php on line 22 An dem Manual orientiert ergibt sich mir die Frage, wenn das Auslesen der Static-Variable geht, kann ich sie nicht auch setzen? Und wenn ja, wie?
__________________ I did it my way - Senseless-Blog Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 |
| | |
| | Nach oben #2 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
|
Jou. Es gibt ja kein Objekt ErrorHandling. Du nutzt das, ohne es vorher instanziiert zu haben. Füge der Klasse Auth doch eine Klassenvariable hinzu und greife darauf zu. PHP-Code: PHP-Code: Grüße Ben. |
| | |
| | Nach oben #3 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
Mja bisher ist das nur rumgeteste, aber ich will eigentlich ohne ein Objekt erstellen zu müssen auf dieser Variablen "rumschreiben" deswegen muss es doch möglich sein, dass mit static zu tun oder? nur auslesen einer static-variablen ohne die möglichkeit des wertzuweisens ist doch fast schon sinnlos
__________________ I did it my way - Senseless-Blog Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 |
| | |
| | Nach oben #4 |
| me pro ok? Registriert seit: 07.09.2005 Ort: Pulheim bei Köln
Beiträge: 964
|
Warum nicht einfach im Error-Handler eine statische Methode erzeugen, die Objekt von sich selbst erstellt und dann damit arbeitet? PHP-Code: |
| | |
| | Nach oben #5 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
Hey die Idee ist gut, dass probier ich gleich mal.
__________________ I did it my way - Senseless-Blog Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 |
| | |
| | Nach oben #6 |
| me pro ok? Registriert seit: 07.09.2005 Ort: Pulheim bei Köln
Beiträge: 964
|
Ich habs wie folgt gelöst. PHP-Code: PHP-Code: |
| | |
| | Nach oben #7 |
| Erfahrener Benutzer Registriert seit: 19.08.2005
Beiträge: 115
|
Warum nicht einfach singleton? Du wirst doch eh nur eine Instanz der Klasse brauchen, das ist doch das Typische Anwendungsgebiet.
__________________ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning. |
| | |
| | Nach oben #9 | ||
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
Error.php PHP-Code: Mit $this Zitat:
Zitat:
__________________ I did it my way - Senseless-Blog Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 | ||
| | |
| | Nach oben #10 |
| me pro ok? Registriert seit: 07.09.2005 Ort: Pulheim bei Köln
Beiträge: 964
|
In statischen Methoden gibt es kein $this, das gibts nur im Objektkontext, d.h. wenn ein Objekt erzeugt wurde und dann darin gearbeitet wird. Setz' $_error auf static (private static $error), dann kannst du in der Methode mittels self::$_error drauf zugreifen. |
| | |
| | Nach oben #11 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
|
Schon ohne $this und mit self::, dazu dann noch die Klassenvariable public static machen und fein. Oder halt wie Lars als Konstanten ablegen. Nochmal genau schauen: [EDIT] @Lars: Sicher, dass private static funktioniert? |
| | |
| | Nach oben #14 |
| Gast
Beiträge: n/a
|
wenn's denn mit singleton gemacht werden muss, und der errorhandler nicht einfach als konstruktorparameter übergeben werden soll, dann so: PHP-Code: die allgemeinen gefahren von singletons sollten halt klar sein. |
|
| | Nach oben #15 |
| Gast
Beiträge: n/a
|
übrigens: http://us2.php.net/errorfunc sollte portabler und schneller sein und auch beim austausch des handlers weniger probleme machen. |
|
| | Nach oben #16 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
Danke für die Hilfe @axo: das error_reporting von php wollte ich nicht nutzen, denn eigentlich sollen keine parserfehler ausgegeben werden sondern programmspezifische Fehler wie falsche Formulareingaben etc. trotzdem danke
__________________ I did it my way - Senseless-Blog Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 |
| | |
| | Nach oben #18 | |
| Gast
Beiträge: n/a
| Zitat:
aber wie du willst. singleton-pattern ist halt gefährlich, aber wie's geht kannst du an obenstehendem code schon sehen. | |
|
| | Nach oben #19 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
dann werd ich mir das nochmal genauer zu gemüte führen.
__________________ I did it my way - Senseless-Blog Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 |
| | |