Hallo Daniel,
Und hier die komplett generische Lösung:
---- Pseudocode:
function mache (array $a) {
...
}
function mache (int $a, bool $b) {
...
}
function mache (string $a, string $b) {
...
}
---------
wird zu:
------ PHP-Code
function mache_array ($a) {
...
}
function mache_intbool ($a, $b) {
...
}
function mache_2string ($a, $b) {
...
}
function mache () {
$arg_list = func_get_args ();
if (count ($arg_list) == 1) {
if (is_array ($arg_list[0])) {
return mache_array ($arg_list[0]);
} else {
return;
}
} else if (count ($arg_list) == 2) {
if (is_int ($arg_list[0]) && is_bool ($arg_list[1])) {
return mache_intbool ($arg_list[0], $arg_list[1]);
} else if (is_string ($arg_list[0]) && is_string ($arg_list[1])) {
return mache_2string ($arg_list[0], $arg_list[1]);
} else {
return;
}
} else {
return;
}
}
-------
Diese Lösung ist zwar recht kompliziert, aber damit kann man *jede* Art von Polymorphie in PHP simulieren.
Viele Grüße,
Christian