dedlfix: PHP5 Klassenvariable

Beitrag lesen

echo $begrueszung;

Ein Singleton ist eine Klasse, von der nur eine Instanz existieren kann:

Und deshalb ist singleton hier für den OP nicht die richtige Herangehensweise, denn er will ja mehrere Instanzen haben, und das ist durchaus sinnvoll.

Wenn die Klasse noch weitere Eigenschaften enthalten würde, die sich pro Instanz unterscheiden können / sollen, dann ist ein Singleton in der Tat nicht der richtige Weg. Aber so wie mir die Klasse vorgegeben wurde, war diese Angehensweise durchaus sinnvoll.

Jetzt, nachdem ich das nochmal gelesen habe, denke ich auch, dass es nur eine Instanz der Klasse geben darf.
In dem Falle würde ich mir aber die Instanziierung sparen und gleich auf eine statische Methode setzen.

  
class DBM { // wofür auch immer dieses DB_M_ steht (Stichwort: Dokumentationskommentare!)  
  
  private static $DBStruct = array();  
  
  public static getDBStruct($tableName) {  
    if (!isset(self::$DBStruct[$tableName]))  
      self::$DBStruct[$tableName] = self::readTableStructure($tableName);  
  
    return self::$DBStruct[$tableName];  
  }  
  
  private static readTableStructure($tableName) {  
    ... // wenn Tabelle $table nicht existiert sollte eine Exception geworfen werden  
  }  
}  

Aufruf dann mit: $x = DBM::getStruct($tableName);

Ob es sinnvoll ist, die DB-Struktur im Ganzen einzulesen oder nur die der jeweils benötigten Klassen (wie in meinem Beispiel), mag der OP entscheiden.

echo "$verabschiedung $name";