dedlfix: Klassen und der static-Aufruf

Beitrag lesen

echo $begrüßung;

umgehen: erst eine instanz von "meineklasse" erzeugen und referenz an "meineklasse::meinefunktion(&$instanz) mitgeben.
in "meinefunktion" dann $instanz->weiterefunktion() aufrufen.

aber welchen sinn macht das???

So'rum ist das sicher nicht sehr sinnvoll. Es gibt aber durchaus Anwendungsfälle für einen statischen Aufruf und anschließende Instanzaufrufe. Beispiel soll hier das singleton-Pattern in PHP5-Code sein.

  
class myclass {  
  private static $instance;  
  
  public $foo; // irgendeine Eigenschaft  
  
  public static function singleton() {  
    // Instanz erzeugen, wenn noch nicht vorhanden  
    if (is_null(self::$instance)) {  
      self::$instance = new self;  
  
      // ein Beispiel-Aufruf einer nicht-statischen Methode  
      self::$instance->init();  
    }  
    return self::$instance;  
  }  
  
  private function init() {  
    $this->foo = 42;  
  }  
}  
  
$object = myclass::singleton();  
echo $object->foo;  
$object->foo = 43;  
  
$object2 = myclass::singleton();  
echo $object2->foo;  

(Was ich im konkreten Fall des OP für angebracht hielte, kann ich natürlich ohne Kenntnis der Aufgabenstellung nicht sagen.)

echo "$verabschiedung $name";