Sé que es posible llamar a una función con un número variable de parámetros con call_user_func_array() que se encuentra aquí ->http://php.net/manual/en/function.call-user-func-array.php. Lo que quiero hacer es casi idéntico, pero en lugar de una función, quiero llamar a una clase de PHP con un número variable de parámetros en su constructor.Llamar dinámicamente a clase con número variable de parámetros en el constructor
Funcionaría algo como el siguiente, pero no sabré la cantidad de parámetros, así que no sabré cómo crear una instancia de la clase.
<?php //The class name will be pulled dynamically from another source $myClass = '\Some\Dynamically\Generated\Class'; //The parameters will also be pulled from another source, for simplicity I //have used two parameters. There could be 0, 1, 2, N, ... parameters $myParameters = array ('dynamicparam1', 'dynamicparam2'); //The instantiated class needs to be called with 0, 1, 2, N, ... parameters //not just two parameters. $myClassInstance = new $myClass($myParameters[0], $myParameters[1]);
Su pregunta es un poco ambigua. Parece que estás diciendo que no sabes ahora cuántos argumentos tomará el constructor, pero se trata de una cantidad que se corregirá en tiempo de ejecución y quieres llamarla con el número correcto. ¿Es eso correcto? –
@jburbage Sí ... Se definirá el nombre de la clase a instanciar y se definirán los parámetros para el constructor. Estoy extrayendo esa información de otra fuente.En aras de la simplicidad, dejé eso fuera de este código. Voy a comentar el código anterior para aclarar. – bmarti44
¿Has visto [esta pregunta] (http://stackoverflow.com/questions/1569949/instantiating-a-new-php-class-with-one-or-many-arguments)? Las respuestas allí pueden resolver su problema. –