Wiem, że można wywołać funkcję o zmiennej liczbie parametrów z opcją call_user_func_array() znalezioną tutaj ->http://php.net/manual/en/function.call-user-func-array.php. To, co chcę zrobić, jest prawie identyczne, ale zamiast funkcji chcę wywołać klasę PHP ze zmienną liczbą parametrów w jej konstruktorze.Dynamicznie wywołaj klasę ze zmienną liczbą parametrów w konstruktorze
Będzie działać jak poniżej, ale nie będę znać liczby parametrów, więc nie będę wiedział, jak utworzyć instancję klasy.
<?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]);
Twoje pytanie jest trochę niejednoznaczne. Wygląda na to, że mówisz, że nie wiesz teraz, ile argumentów przyjmie konstruktor, ale jest to pewna kwota, która zostanie naprawiona w środowisku wykonawczym i chcesz wywołać ją z poprawnym numerem. Czy to jest poprawne? –
@jubba Tak ... Nazwa klasy, która ma być instancjonowana i zdefiniowane zostaną parametry konstruktora. Wyciągam te informacje z innego źródła.Dla uproszczenia zostawiłem to z tego kodu. Zamierzam skomentować powyższy kod, aby wyjaśnić. – bmarti44
Widziałeś [to pytanie] (http://stackoverflow.com/questions/1569949/instantiating-a-new-php-class-with-one-or-many-arguments)? Odpowiedzi mogą rozwiązać twój problem. –