Markus: Zugriff von einem auf ein anderes Objekt

Hallo,

in meiner index.php werden via include zwei Klassen eingebunden (Klasse1, Klasse2). Jetzt erzeuge ich ein Objekt(Objekt1) der Klasse1 und fülle die Eigenschaften mit meinen Daten. Funktioniert!

Als nächstes erzeuge ich auch in der index.php ein Objekt(Objekt2) der Klasse2. Funktioniert.

Aber: In einer Methode des Objektes2 möchte ich nun auf Eigenschaften des Objektes1 zugreifen. Die funkioniert nur leider nicht. "Call to a member function on a non-object!"

Wie kann ich dieses Problem lösen?

Danke für Eure Hilfe!

Markus

  1. Hallo,

    na ja, das Objekt weiß halt nicht wer Objekt 1 ist. Ich bin zwar nicht mit der Objekt-Syntax von PHP vertraut, aber das kannst du bestimmt noch irgendwo selber raus finden. Du machst dir irgendwo eine Methode setObject1Reference(Klasse1 Objekt1) (wie gesagt, Syntax unbekannt) und speicherst dir diese Referenz auf das Objekt1 in einer Instanzvariablen. Wenn du jetzt diese Methode aufrufen willst sagst du objekt1variable.getValue().

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. echo $begrueszung;

    Aber: In einer Methode des Objektes2 möchte ich nun auf Eigenschaften des Objektes1 zugreifen. Die funkioniert nur leider nicht. "Call to a member function on a non-object!"

    Objekt-Methoden unterscheiden sich in PHP nicht von normalen Funktionen, was die Sichtbarkeit von Variablen angeht (das Sprachkonstrukt $this mal ausgenommen).

    echo "$verabschiedung $name";

    1. Danke für die Antwort.
      Wie kann ich denn ein Objekt als globale Variable deklarieren?
      Merci, Markus

      1. echo $begrueszung;

        Wie kann ich denn ein Objekt als globale Variable deklarieren?

        wie andere Variablen auch. Sie kann mit

        global $objekt;

        bekannt gemacht werden oder man kann über das $GLOBALS-Array zugreifen: $GLOBALS['objekt']

        Die feine englische Art ist das aber nicht. Besser ist es, das Objekt als Parameter in der Methode, die darauf zugreifen soll, zu übergeben oder über den Konstruktor (oder eine beliebige andere Methode) das Objekt einer Eigenschaft zuzuweisen.

        Dabei ist zu beachten, dass PHP 4 per default Kopien übergibt. Wenn du direkt auf die Instanz zugreifen willst, musst du Referenz verwenden.

        echo "$verabschiedung $name";