Ik heb het volgende probleem,
Ik heb wel eens dat ik een functie schrijf waarin ik wil dat ik bij de aanroep een bepaalde parameter erbij kan doen om het handmatig vast te stellen, maar ook weg kan laten voor de standaard instelling. Ik heb gekeken bij func_num_args en func_get_args, maar ik kwam er niet helemaal uit.
bedoel je? De 2e kun je zelf invullen, als je niks invult krijgt hij de waarde 'standaardwaarde'.
Overigens moeten parameters met standaardwaarden als laatste in de functielijst komen geloof ik (of dat is bij C++ zo...)?
Nou, de enige categorie om problemen in te zetten is "PHP & MySQL" en aangezien dit probleem niet met MySQL te maken heeft, past het probleem daar niet.
Aangezien de koffiehoek de enige categorie is waar je off-topic mag zijn, hoort het probleem dus hier thuis... ;-(
?
Onbekende gebruiker
19-03-2006 18:20
oke, door dus standaarwaarde in te stellen, had ik eigenlijk wel zelf kunnen bedenken. *schaam*
Het is logisch dat de parameters met standaardwaarden achteraan moeten komen te staan. PHP ziet niet aan de waarde die je invoert, bij welke parameter deze moet worden ingevoerd :)
Ik ben het in theorie niet helemaal met je eens ;-)
Stel dat je een func (a, b, c) hebt, waarbij a optioneel is. Als je func() aanroept met 2 parameters kan de parser nog steeds goed vaststellen dat die twee waardes b en c moeten voorstellen.
Het wordt een beetje tricky als zowel parameter a als c optioneel zijn. Als je dan func() met 2 parameters aanroept, weet de parser niet of hij a en b of b en c moet nemen. Maar als je afspreekt dat het in dat geval links-associatief is (zoals nu ook al het geval is wanneer je meerdere optionele parameters hebt), dan komt ook dat wel goed.
Overigens is het voor zover ik weet bij PHP wel zo dat optionele parameters altijd aan de rechterkant moeten staan.
Je kan ook nog iedere parameter de standaardwaarde NULL meegeven. In de functie kijk je dan welken nog NULL zijn, en die geef je dan als nog hun standaardwaarde. Zo kan je NULL meegeven als je de standaardwaarde wil hebben.
Het enige probleem is waneer je de waarde NULL wilt meegeven, dus dat NULL erin moet, en niet de standaardwaarde. Dan kan je met Define en constanten gaan werken.