Kôd:
function hello ($name = 'Anonymous') {
$args = func_num_args () ? func_get_args () : array ($name);
echo 'Hello ' . implode (', ', $args);
}
:-)
Nisam baš experienced u Javi, ali mi je jasan smisao overloadinga - upravo pojednostavljenje koda za laganije rešavanje različitih scenarija upotrebe funkcije. Logički dele isto ime što korisniku funkcije olakšava proces razmišljanja, dok parametri (njihov tip i broj) određuju šta treba tamo negde u pozadini da se izvrši (a to i ne interesuje korisnika, ako radi). Trpanje sveg tog koda u jednu funkciju i switchovanje čini ga težim za održavanje (neko reče budž :-)
Muka ovog primera je što svaki overload uzima novo ime (hello1, hello2, hello3) i što zahteva pisanje dispečera (to mu dođe ovaj __call), ali makar se korisnik komotnije oseća.