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.