|
Posted by Eli on 08/11/05 05:23
Jochem Maas wrote:
> Eli wrote:
>> <?
>> $obj_eval="return new $class(";
>> for ($i=0; $i<count($args); $i++)
>> $obj_eval.="\$args[$i],";
>> $obj_eval=substr($obj_eval,0,-1).");";
>> $obj=eval($obj_eval);
>> ?>
>
>
> I believe that this is the kind of clever, evil stuff the OP was trying
> to avoid...
> (evil - eval :-) - besides eval is very slow - not something you (well
> me then) want to
> use in a function dedicated to object creation which is comparatively
> slow anyway
> (try comparing the speed of cloning and creating objects in php5 for
> instance
>
> regardless - nice one for posting this Eli - I recommend anyone who
> doesn't understand
> what he wrote to go and figure it out, good learning material :-)
>
>>
You're right that using eval() slows.. But using the _init() function as
you suggested is actually tricking in a way you move the constructor
params to another function, but the initialization params should be sent
to the constructor!
I guess that it would be better if PHP will add a possibility to
construct a dynamic class with variant number of params... ;-)
[Back to original message]
|