Antwort an „Rolf B“ verfassen

Hallo Bastian,

Objekteigenschaften hängen am Objekt und behalten ihren Wert, solange das Objekt "lebt". Du kannst Dir das Objekt dafür als "Array mit angeklebten Funktionen" vorstellen. Was Du also in einer Methode setzt, ist in einer nachfolgend aufgerufenen Methode verfügbar - solange das mit dem gleichen Objekt passiert. Hier etwas Spielerei:

class Westmensch
{
   private $vorname;
   public $nachname

   public function __constructor($v, $n) {
      $this->vorname = $v;
      $this->nachname = $n;
   }

   public get_Vorname() {
      return $this->vorname;
   }

   public get_Name() {
      return $this->vorname . " " . $this->nachname;
   }


   public set_Name($neuerVorname, $neuerNachame) {
      $this->vorname = $neuerVorname
      $this->nachname = $neuerNachname
   }
}

$m = new Westmensch("Bastian", "Bux");
$r = new Westmensch("Rolf", "B");

echo $m->nachname;      // Direktzugriff auf Eigenschaft -> Bux
echo $m->get_Vorname(); // Getter -> Bastian
echo $m->vorname;       // Direktzugriff scheitert wegen private

$m->set_Name("Karl", "Koriander");
$r->set_Name("Rübe", "Zahl");
$r->nachname = "Rapunzel";

echo $m->get_Name();    // -> Karl Koriander
echo $r->get_Name();    // -> Rübe Rapunzel

Die Klasse heißt Westmensch, weil das Namensschema für östliche Völker ggf. nicht passt. Die Methodenauswahl ist kein Vorbild für Objektmodellierung!

Ich erstelle zwei Objekte, jedes mit eigenen Inhalten. Der Vorname ist private (könnte auch protected sein), der Nachname public. Deswegen kann man den Nachnamen direkt lesen und ändern, den Vornamen aber nicht.

Und was Du in der einen Methode gesetzt hast (oder direkt gesetzt hast), ist in nachfolgenden Methoden weiterhin verfügbar. Aber für jedes Objekt separat.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen