Hoi medetweakers. Ik probeer een dynamisch aantal argumenten door te sturen naar een andere functie. Het laat zich denk ik het beste uitleggen met deze code:
Het probleem zit hem in de hoeveelheid argumenten die bind_param accepteert: het eerste argument is vast, en daarna komen er nog een willekeurig aantal (voor elke variable die je wilt binden).
Nou kan je alle argumenten wel opvangen met func_get_args() dus daar zit het probleem niet. Maar hoe speel ik ze door aan de parent?
Het bovenstaande werkt niet, want ik moet de argumenten echt als losse argumenten meegeven aan de parent. Uit elkaar halen en ze aan elkaar plakken ((string) '"arg1", "arg2", "arg3"') werkt natuurlijk ook niet omdat hij het dan als een enkele string ziet. Op google vond ik geen oplossing, en ook op GoT kwam ik niets tegen.
Iemand een idee?
PHP:
1
2
3
4
5
6
7
| class mymysqli_stmt extends mysqli_stmt { public function bind_param($types, $argument1, $argument2, $argument3, ...) { //doe iets met de data parent::bind_param($types, , $argument1, $argument2, $argument3, ...); //doe nog meer met de data } } |
Het probleem zit hem in de hoeveelheid argumenten die bind_param accepteert: het eerste argument is vast, en daarna komen er nog een willekeurig aantal (voor elke variable die je wilt binden).
Nou kan je alle argumenten wel opvangen met func_get_args() dus daar zit het probleem niet. Maar hoe speel ik ze door aan de parent?
PHP:
1
2
| $array = array_slice(func_get_args(),1); //krijg alle optionele argumenten parent::bind_param($types, $array); //stuur ze in een array door naar een andere functie |
Het bovenstaande werkt niet, want ik moet de argumenten echt als losse argumenten meegeven aan de parent. Uit elkaar halen en ze aan elkaar plakken ((string) '"arg1", "arg2", "arg3"') werkt natuurlijk ook niet omdat hij het dan als een enkele string ziet. Op google vond ik geen oplossing, en ook op GoT kwam ik niets tegen.
Iemand een idee?