• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] Wert von Klasse 1 in Klasse 2 Nutzen

Harry4711

New member
Hallo Leute ich habe mal wieder ein Problem

Ich habe mir eine Registry Klasse erstellt und möchte die dort gespeicherten werte gerne in anderen Klassen weiterverwenden.
Ich komme nur nicht an die werte dran in Klasse 2.
Kann mir bitte wer sagen wo mein Fehler ist.

PHP:
<?php

error_reporting(-1);
ini_set('display_errors', TRUE); 

class Registry {
   
   // Statische Variable, um die aktuelle als einzige Instanz dieser Klasse zu haben
   protected static $_instance = null;

   // Die Variabel festlegen
   protected $vars = array();
  
  // Falls die Instanz noch nicht existiert, erstelle sie und gebe die Instanz dann zurück
   public static function getInstance()
   {
      if (self::$_instance === null)
      {
         self::$_instance = new self;
      }
         return self::$_instance;
   }
   
   // Kopieren der Instanz von aussen verbieten
   protected function __clone() {}
  
  
   // Metode zum anlegen von Objekten
   function __set($key, $value) 
   {
      //Ordnet eine Variable einem bestimmten Schlüssel zu
      $this->vars[$key] = $value;
    
   }
   
   // Metode zum ausgeben von Objekten
   function __get($value) 
   {
      // wenn es den Key gibt
      if( isset( $this->vars[$value] ) ) 
      {
         // ausgeben der Variabel
         return( $this->vars[$value] );
         
      } else {
         // augeben von NULL // TODO Fehler abfangen
         return( NULL );
         
      }
   }
}

?>


<?php  

class zum_Testen
{

  private $neue_klasse = null;

  public function __construct(Registry $neue_klasse)
  {
    $this->neue_klasse = $neue_klasse;
  }

  // nur um zu Testen ob ich auf den gespeicherten wert zugreifen kann
  function test()
  { 
    echo $this->neue_klasse->beispiel;
  }
}

?>


<?php 

$test = new Registry();
$test->beispiel = "geht";
echo $test->beispiel; // Das geht


echo "</br></br></br>";
 

$test = new zum_Testen(new Registry);
$test->test();

?>

Danke und Gruß
Harry
 
Zuletzt bearbeitet von einem Moderator:
Hallo rico2009,

erst mal danke für deine Antwort.

Welche werte meinst du ?

Und ich suche eingentlich eine möglichkeit das ohne extends zu machen.

Sinn des ganzen soll sein Werte in allen Klassen wo sie nötig sind zu haben.

Das ist eine Spielerei die ich gerade mache bei meinen Versuchen mich mit MVC zu beschäftigen.


Gruß
Harry
 
deine Registry ist eigentlich ein Singleton und in beiden Fällen rufst du das Objekt falsch auf. Es müßte Registry::getInstance() heißen und nicht new Registry.
 
Zurück
Oben