Andreas Görtz: Type Hinting und optionale Parameter

Beitrag lesen

Hi Blaubart,

Gibt es einen vernünftigen[TM] Weg, um ein Objekt in der Parameterliste wahlweise auszulassen oder anders eindeutig als Sonderfall zu kennzeichnen?

Du könntest in der Deklaration die Parameter 2 und 3 weglassen und diese bei Existenz selbst prüfen:

  
class Foo {  
  function foobar (Foo $foo) {  
    $bar = null;  
    if (func_num_args() > 1) {  
      $bar = func_get_arg(1);  
      if (!is_null($bar) && !is_a($bar, 'Bar')) {  
        trigger_error('Argument 2 must be an object of class Bar', E_USER_ERROR);  
      }  
    }  
  }  
}  

Ob das vernünftig ist - ich weiß es nicht ;-)

Gruß,
Andreas.