Christian Seiler: Klassenverständnis?

Beitrag lesen

Hallo,

und eine methode kann es nur einmal in einer instanz geben, wenn sich diese nicht wie in java durch unterschiedliche signaturen unterscheiden. aber soweit ist php noch nicht.

Das hat nichts mit »weit sein« zu tun - PHP ist eine Scriptsprache und besteht nicht auf festen Datentypen [1] - dafür kann man halt Funktionen schreiben, die dynamisch den Typ ihrer Argumente prüfen (ungetesteter (!) Beispielcode):

function Funktion ($arg) {  
  if (gettype($arg) == 'int') {  
     // war ein integer  
  } else if (gettype($arg) == 'object') {  
    // war ein object  
    switch(strtolower(get_class($arg)) {  
      case 'TolleKlasse1':  
        // mach was tolles  
        break;  
      case 'TolleKlasse2':  
        // mach was tolles  
        break;  
      default:  
        // oops  
    }  
  } else {  
    // oops  
  }  
}

Viele Grüße,
Christian

[1] Ja, ich weiß, in PHP 5 kann man forcieren, dass ein Parameter ein Objekt einer bestimmten Klasse sein soll, allerdings geht dies m.W. nicht für primitive Datentypen.

--
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup