![]() |
OOP Problem - class Email
Hi Leute,
ich wollte heute mal wieder etwas in PHP programmieren und dabei wollte ich auf die OOP zurückgreifen. Projekt ist "noch" ein Email Script. Bisher sieht das Kontaktformular schlicht gehalten aus. Dies ist auch so gewollt, denn mir geht es im wesentlichen Sinne eher darum etwas die OOP kennen zu lernen. Das Kontaktfomular wie folgt: PHP-Code:
hier die Email Klasse in Email.php PHP-Code:
Außerdem hätte ich noch eine Frage: Funktioniert der Konstruktor wie ich ihn möchte überhaupt? Wäre für Hilfe dankbar :) MfG Matze $to wegen Spamgefahr/angst ^^ geändert. /* --------------------------------------------------------------------------------------------------------------------------------------- */ Ich habe es jetzt soweit hinbekommen, dass die Email versendet wird: PHP-Code:
PHP-Code:
Dennoch verstehe ich nicht warum ich meine klasseninternen Variablen $subject und $text nicht in dieser Form verwenden kann - sondern nur mittels $this->subject bzw. $this->text!??? Außerdem wird mir jetzt der Return von _sendEmail() nicht mehr zurückgeben!? Wenn ich print $email schreibe wird nur "Object" ausgegeben. Wie bekomme ich den Return "ausgegeben"? Vielen Dank schon im Voraus! :) MfG Matze (ist !== richtig?) |
Zitat:
In Java ist es prinzipiell kein Problem, in PHP muss man allerdings hierbei strikt unterscheiden. Dafür darf man ansonsten eh schlampen wie man will xD Zitat:
Ein Konstruktor liefert NIE einen Wert zurück! Er dient lediglich dazu ein Objekt (in diesem Fall die Klasse Email) zu instanziieren! Hier schlägt auch wieder die schlampige Syntax von PHP zurück, da es keine strikte Trennung der Datentypen gibt! Vergleich zu Java: Code:
// "Normale" Methode die einen String zurückgibt Zitat:
PHP-Code:
PHP-Code:
Zitat:
Es ist allerdings erschreckend dass du innerhalb der Klasse auf diesselbe Klasse statisch zugreifen möchtest ... oÔ ( Email::_sendEmail() ) Probier doch mal das: PHP-Code:
PHP-Code:
Hoffe ich konnte dir OOP hiermit etwas näher bringen. Viel Spaß noch beim Programmieren 8) |
Ahh... ja danke! Du hast mir sogar sehr geholfen! Jetzt funktioniert es :).
Das mit dem Return im Konstruktor habe ich aus einem PEAR Package (Text_Password). Ich dachte damit könnte man erzwingen, dass die komplette Klasse "abgearbeitet" wird. So in der Art, dass sobald man $irgendwas = new Email(wert, wert, ...); schreibt, es diese auch sofort versendet, ohne erst eine weiter Funktion à la $irgendwas->_sendEmail aufrufen zu müssen. Aber nun weis ich ja, dass dies nicht möglich ist ;). auszug aus dem PEAR Package "Text_Password": Author: Martin Jansen und Olivier Vanhoucke PHP-Code:
Kann es sein das du JAVA "liebst"? :p Danke nochmal!!! MfG |
Bitte gerne :)
Zitat:
Kann ich dir nur empfehlen wenn du auch mal "richtige" Software programmieren möchtest. |
Ich möchte demnächst eher mit C++ anfangen und mich bereits jetzt auf mein Studium vorbereiten (Elektrotechnik)
|
Zitat:
Zitat:
Mario PS: Bitte kein weiteren PHP-Bashing. Mit PHP 5 hat sich in Sachen OO viel getan, auch wenn man schon vorher "richtige" Software damit programmieren konnte. |
Würdest du das mit dem "Error-Level" etwas ausführlicher beschreiben? die Docu (php.net) weis dazu nix.
Könnte mir auch jmd nochmal erklären warum ich === und nicht == schreiben muss? Ich hatte das schon mal irgendwo gelesen, den Link dazu habe ich leider verlegt. Danke schon im Voraus. MfG |
Ach doch, die Doku kennt das schon :)
PHP: error_reporting - Manual Zum Testen setz ich es meist so: PHP-Code:
|
Zitat:
PHP-Code:
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:04 Uhr. |
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2022, vBulletin Solutions, Inc.
© Dirk H. 2003 - 2022