Hoi. Ik wil een functie aanroepen met variabelen die eerder in een array zijn gestopt. Geen probleem, ware het niet dat de te aanroepen functie twee verplichte variabelen mee moet krijgen, en twee optionele variabelen mee mag krijgen, die, als ze niet bekend zijn, wel een default waarde on de functie moeten hebben. Vergeet die verplichte variabelen, want die kan ik gewoon van te voren even checken, maar het zit 'm in die optionele variabelen met default waarden...
Bijvoorbeeld deze functie:
De variabelen komen bijvoorbeeld uit deze array:
Voor het gemak hebben de indexen van de array $myvars al dezelfde naam als de variabelen die aan de functie mee moeten gegeven, ook al is dat niet nodig, maar goed... Even die indexen naar echte variabelen omzetten:
Nu kan ik die functie natuurlijk gewoon zo aanroepen:
Maar niet heus, want $max is nu niet gezet en heeft dus geen waarde, en wordt dus als lege variabele naar de functie gestuurd, waardoor $max in de functie niet 60 is, maar NULL! Kortom, in dit geval zou ik de functie zo moeten aanroepen:
Dan gaat het wel goed.
Dit is natuurlijk makkelijk op te lossen met een enkelvoudig if-else statement, maar wat nu als het om veel meer optionele variabelen gaat met default waarden? Of wat nu als $myvars['max'] wel is opgegeven en $myvars['alert'] weer niet?
De manier waarop ik de functie moet aanroepen is dus afhankelijk van welke variabelen zijn gezet. Hoe krijg ik dit voor elkaar? (Je kunt er vanuit gaan dat de verplichte variabelen altijd als eerste in het functie statement worden meegegeven...)
Bijvoorbeeld deze functie:
PHP:
1
| function addtext($title, $fieldname, $alert = '', $max = '60') { } |
De variabelen komen bijvoorbeeld uit deze array:
PHP:
1
2
3
| $myvars['title'] = "Mijn titel"; $myvars['fieldname'] = "titelveld"; $myvars['alert'] = "Vul een titel in"; |
Voor het gemak hebben de indexen van de array $myvars al dezelfde naam als de variabelen die aan de functie mee moeten gegeven, ook al is dat niet nodig, maar goed... Even die indexen naar echte variabelen omzetten:
PHP:
1
2
3
| foreach($myvars as $key => $value) { $$key = $value; } |
Nu kan ik die functie natuurlijk gewoon zo aanroepen:
PHP:
1
| addtext($title, $fieldname, $alert, $max) |
Maar niet heus, want $max is nu niet gezet en heeft dus geen waarde, en wordt dus als lege variabele naar de functie gestuurd, waardoor $max in de functie niet 60 is, maar NULL! Kortom, in dit geval zou ik de functie zo moeten aanroepen:
PHP:
1
| addtext($title, $fieldname, $alert) |
Dan gaat het wel goed.
Dit is natuurlijk makkelijk op te lossen met een enkelvoudig if-else statement, maar wat nu als het om veel meer optionele variabelen gaat met default waarden? Of wat nu als $myvars['max'] wel is opgegeven en $myvars['alert'] weer niet?
De manier waarop ik de functie moet aanroepen is dus afhankelijk van welke variabelen zijn gezet. Hoe krijg ik dit voor elkaar? (Je kunt er vanuit gaan dat de verplichte variabelen altijd als eerste in het functie statement worden meegegeven...)