Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 31.08.2007, 17:38
heartdisease heartdisease ist offline
Neuer Benutzer
neuer user
 
Registriert seit: 29.08.2007
Ort: /home/heartdisease
Beiträge: 19
heartdisease befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ct2oo4 Beitrag anzeigen
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!???
Damit PHP nicht mit Klassen- und Methodenvariablen durcheinander kommt.
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:
Wenn ich print $email schreibe wird nur "Object" ausgegeben. Wie bekomme ich den Return "ausgegeben"?
Tja, das liegt ganz klar auf der Hand
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
// Syntax: Sichtbarkeit - Typ des Rückgabewerts - Methodenname
public String methode() {
	return new String();
}

// Konstruktor
// Syntax: Sichtbarkeit - Methodenname
public Klassenname() {}
Zitat:
(ist !== richtig?)
Nein! Es ist nur === zulässig. Du müsstest schreiben:
PHP-Code:
if ( !($this->subject === '') && !($this->text === '') ) 
Ich würde dir allerdings diese Syntax nahelegen:
PHP-Code:
if ( !empty($this->subject) && !empty($this->text) ) 
Zitat:
Wie bekomme ich den Return "ausgegeben"?
Mal sicher nicht über den Konstruktor wie wir ja jetzt wissen
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:
if ($send) {
    
$email = new Email($_POST['subject'], $_POST['text']);
    
$email->_sendEmail();

Und schmeiß endlich
PHP-Code:
return Email::_sendEmail(); 
aus dem Konstruktor ^^'

Hoffe ich konnte dir OOP hiermit etwas näher bringen. Viel Spaß noch beim Programmieren
Mit Zitat antworten
Sponsored Links