blau: Klassen und Arrays

Hallo,

ich habe eine Klasse definiert, in der ich meine Config-Variablen ablege. Nun wollte ich auf die Variable von außerhalb der Klasse zugreifen.

Also so nach dem Motto:

  
  
class test{  
  
var db_tab = array();  
  
function test(){  
  
$this->db_tab[1] = "a";  
$this->db_tab[2] = "b";  
  
}  
  
}  
  
$classname = new test;  
echo classname->db_tab[1];  
  

Wenn ich das nun ausführe bekomme ich nur einen leeren String zurückgeliefert.

Was mache ich falsch?

Schöne Grüße,

blau

  1. echo $begrüßung;

    $classname = new test;
    echo classname->db_tab[1];
    Wenn ich das nun ausführe bekomme ich nur einen leeren String zurückgeliefert.
    Was mache ich falsch?

    Du investierst einen $ zu wenig, du verwendest das alte Klassendesign von PHP 4, und das error_reporting steht vermutlich auch nicht auf E_ALL (und/oder display_errors nicht auf on).

    Mit OOP unter PHP 5 könntest du Klassenkonstanten verwenden, wenn es sich um fest definierte Werte handelt. Ansonsten wäre vielleicht das Singleton-Pattern angebracht, um mehrfache Instanzen der Klasse zu verhindern. Allerdings sollte die statische Methode, die sonst die Instanz zurückgibt gleich so geschrieben werden, dass sie den gewünschten Konfigurationswert liefert.

    Zusätzlich zu E_ALL für das error_reporting solltest du noch E_STRICT aktivieren, damit du die alten PHP-4-OOP-Sünden angezeigt bekommst.

    echo "$verabschiedung $name";

  2. mit dem '$' sollte es gehen
       echo $classname->db_tab[1];

    --
    Natürlich glaube ich an die Existenz von Ausserirdischen. Schliesslich gibt es ja auch das PERFEKTE SCRIPT.