Hallo, ich bin gerade dabei mich in OOP einzuarbeiten, wobei sich einige Fragen bei mir aufgetan haben.
Frage 1:
Wie ich gelesen habe, werden zu Beginn in einer Klasse alle Eigenschaften eines Objektes angegeben. In einem Konstruktor werden diesen Eigenschaften dann Werte zugewiesen. Aber irgendwie seh ich den Sinn dahinter nicht ganz. Hab mal versucht, eine Klasse für eine User-Registrierung zu erstellen, was soweit auch funktioniert. Wenn ich aber die ganzen Eigenschaften (private $vorname, private $nachname, ...) am Anfang rauslösch, funktioniert das alles trotzdem noch so wie es soll. Wozu ist dann die Auflistung gut, was bringt mir das? Nur um die Eigenschaften als private/public/protected zu deklarieren? Würden die dann wenn ich auf die Auflistung am Anfang verzichten würde quasi alle automatisch auf public stehen? Oder hat die Auflistung noch irgendwie eine andere Bewandnis? Also hier mal der Anfangsteil zum besseren Verständnis:
Frage 2:
Angenommen ich möchte in die Klasse nun auch Methoden zum Login/Logout einfügen. Da brauch ich ja als Eigenschaften nur Username und Passwort. Im Konstruktor könnt ich ja dann durch eine if-Bedingung rausfinden, ob sich ein User registrieren oder einloggen will und demnach entscheiden, ob nur dem Usernamen und Passwort Werte zugewiesen werden oder auch Vorname, Nachname und Email. Was mach ich dann aber mit den Eigenschaften am Anfang der Klasse (die Dinger mit dem private davor)? Kann ich die einfach so alle stehen lassen obwohl einige im Falle eines Logins nicht gefüllt bzw. genutzt werden oder wie ist das?
Frage 3:
Muss man jedes Mal, wenn man einen Konstruktor erstellt hat auch einen Destruktor erstellen oder ist das optional? Hinter den Sinn so eines Destruktors bin ich auch noch nicht so ganz gestiegen...
Frage 4:
Ich hab mal gehört, in Methoden soll man kein echo verwenden. Weiß einer den Grund dafür?
Fragen über Fragen... Hoffe ihr könnt mir helfen!
Frage 1:
Wie ich gelesen habe, werden zu Beginn in einer Klasse alle Eigenschaften eines Objektes angegeben. In einem Konstruktor werden diesen Eigenschaften dann Werte zugewiesen. Aber irgendwie seh ich den Sinn dahinter nicht ganz. Hab mal versucht, eine Klasse für eine User-Registrierung zu erstellen, was soweit auch funktioniert. Wenn ich aber die ganzen Eigenschaften (private $vorname, private $nachname, ...) am Anfang rauslösch, funktioniert das alles trotzdem noch so wie es soll. Wozu ist dann die Auflistung gut, was bringt mir das? Nur um die Eigenschaften als private/public/protected zu deklarieren? Würden die dann wenn ich auf die Auflistung am Anfang verzichten würde quasi alle automatisch auf public stehen? Oder hat die Auflistung noch irgendwie eine andere Bewandnis? Also hier mal der Anfangsteil zum besseren Verständnis:
PHP-Code:
class User
{
private $vorname;
private $nachname;
private $email;
private $username;
private $passwort;
public function __construct($userdaten){
$this->vorname = $userdaten[0];
$this->nachname = $userdaten[1];
$this->email = $userdaten[2];
$this->username = $userdaten[3];
$this->passwort = $userdaten[4];
}
...
...
}
Frage 2:
Angenommen ich möchte in die Klasse nun auch Methoden zum Login/Logout einfügen. Da brauch ich ja als Eigenschaften nur Username und Passwort. Im Konstruktor könnt ich ja dann durch eine if-Bedingung rausfinden, ob sich ein User registrieren oder einloggen will und demnach entscheiden, ob nur dem Usernamen und Passwort Werte zugewiesen werden oder auch Vorname, Nachname und Email. Was mach ich dann aber mit den Eigenschaften am Anfang der Klasse (die Dinger mit dem private davor)? Kann ich die einfach so alle stehen lassen obwohl einige im Falle eines Logins nicht gefüllt bzw. genutzt werden oder wie ist das?
Frage 3:
Muss man jedes Mal, wenn man einen Konstruktor erstellt hat auch einen Destruktor erstellen oder ist das optional? Hinter den Sinn so eines Destruktors bin ich auch noch nicht so ganz gestiegen...
Frage 4:
Ich hab mal gehört, in Methoden soll man kein echo verwenden. Weiß einer den Grund dafür?
Fragen über Fragen... Hoffe ihr könnt mir helfen!
Kommentar