Grazie tantissime per il suggerimento, l'ho modificato in qualcosa tipo

codice:
    if (isset($parameters[4]))          
        $obj = new Bar($parameters[0], $parameters[1], $parameters[2], $parameters[3], $parameters[4]);

    else if (isset($parameters[3]))          
        $obj = new Bar($parameters[0], $parameters[1], $parameters[2], $parameters[3]);

    else if (isset($parameters[2]))          
        $obj = new Bar($parameters[0], $parameters[1], $parameters[2]);

    else if (isset($parameters[1]))          
        $obj = new Bar($parameters[0], $parameters[1]);

    else if (isset($parameters[0]))
        $obj = new Bar($parameters[0]);
facendo cosi l'overhead nell'esecuzione, rispetto allo stesso numero di case, praticamente è la metà!

codice:
Eval:
    Time:1.575356

Reflection:
    Time:0.839905

Direct:
    Time:0.314733

Direct using if:
    Time:0.371234

Direct using switch:
    Time:0.456811
In realtà siccome è il tempo di esecuzione complessivo di 100000 ritengo che vada sufficentemente bene