Beste,

Is het mogelijk een function te schrijven waar het niet verplicht is een argement in te vullen
vb:

testfunctie("test");
testfunctie("test","test2");

wat ik bedoel is dat deze 2 voorbeelden alle 2 zouden werken

Mvg
Matthias ROchtus
ja hoor

function metStandaardWaardes($a, $b, $nietverplictmetstandaardwaarde = 'geen waarde')


of


function compleetGeenVerplichting()
{
print_r(func_get_args())
}
IK snap je voorbeelden niet
Ik denk dat je de onderste bedoelt:

<?php
function compleetGeenVerplichting()
{
// Je krijgt de args die doorgegeven zijn d.m.v.:
// func_get_args();
// Deze komen in een array te staan.
// Zoiets moet je het dan doen:
$array = func_get_args();
foreach ($array as $key => $value) {
echo 'arg ' . $key . ' = ' . $value;
}
}
?>

Edit:

Met de bovenste heb je een standaardwaarde:
<?php
function standaardwaarde ($arg1, $arg2 = 'value') {
// $arg1 MOET ingevoerd worden,
// $arg2 mag ingevoerd worden, zo niet, dan is deze 'value'.
}
?>
[code]
function ditIsEenFunctionWaarbijJeEenAantalArgumentenMeeGeeftAlsJeDezeNietMeeGeeftWordtDeStandaardWaardeGebruiktDieJeNaHetIsTekenPlaatst($verplicht, $niet_verplicht = "indien niet opgegeven wordt deze waarde gebruikt")
{
// do something
}

function dezeIsGeheelVrij()
{
print_r(func_get_args());
}


dezeIsGeheelVrij('aap','banaan');
dankje wel!!
dat is wat ik bedoelde

Als ik nou eventjes moeilijk wil doen,
en een vrij lange functie wil maken en deze wilgebruiken in verschillende situatues:


<?php
function standaardwaarde ($arg1, $arg2 = 'value', $arg3,$arg4 = 'lol', $arg5) {
}
?>
hier is arg 2 en 4 niet verplicht
als ik 1,2,3,5 invul hoe weet deze dan dat ik bedoel vul 2 inm en 4 niet, en niet omgekeerd??
want ik zet geen aangeving dat dit moet??
of omgekeerd
ik vul 1,3,4,5 in ?? hoe weet deze het verschiL??
hoe kan de functie weten welke ik bedoel in te vullen
Door de vereiste parameters helemaal vooraan en de niet vereiste parameters achteraan te zetten ;)

<?php
function standaardwaarde ($arg1, $arg2, $arg3, $arg4 = 'value', $arg5 = 'lol') {
}
?>
Om je functiedeclaraties niet al te ingewikkeld te maken kun je beter een array meegeven. In de functie kijk je dan gewoon of een bepaalde key geset is.
regel 1) niet verplichte argumenten komen achteraan!
regel 2) je kan niet twee argumenten niet verplichten als de ene de andere niet verplicht
regel 2) je kan niet twee argumenten niet verplichten als de ene de andere niet verplicht

Die snap ik niet

@jan
Dan moet je toch met globals werken??
of bedoel je die via de argemtenten ingeven??
1. gaat diet via arrays
2. dan moet je eerst die array zetten voor je die ingeeft in de argumtenen van de functie??

Reageren