mboost-dp1
Funktioner i php, der kan "undvære" parametre
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Kan det ikke lade sig gøre, at definere en funktion, så den har mulighed for at modtage et antal parametre således:
function hun($1,$2,$3)
{
}
...men samtidig godt kan undvære eksempelvis den sidste. Altså så funktionen kan kaldes på følgende måder:
function($1,$2,$3);
function($1,$2);
function hun($1,$2,$3)
{
}
...men samtidig godt kan undvære eksempelvis den sidste. Altså så funktionen kan kaldes på følgende måder:
function($1,$2,$3);
function($1,$2);
jo.. jeg tror det er denne funktion du leder efter:
http://dk.php.net/manual/da/function.func-get-arg....
http://dk.php.net/manual/da/function.func-get-arg....
#1 jo
nu vil jeg så på det kraftigste fraråde dig at lave variabler der starter med tal...
du kan lave en funktion således:
function blabla($param1, $param2, $param3=5) {
......
}
den kan du så enten kalde med
blabla($param1, $param2);
eller
blabla($param1, $param2, $param3);
hvis du undlader $param3 vil funktionen bare modtage tallet 5
nu vil jeg så på det kraftigste fraråde dig at lave variabler der starter med tal...
du kan lave en funktion således:
function blabla($param1, $param2, $param3=5) {
......
}
den kan du så enten kalde med
blabla($param1, $param2);
eller
blabla($param1, $param2, $param3);
hvis du undlader $param3 vil funktionen bare modtage tallet 5
#1 gi-jones:
amokk har givet dig svaret. Hvis du giver variablen en værdi når du definerer funtionen, så vil du ikke behøve at angive variablen når du kalder funktionen. Dog skal du huske, som ved alle andre funktioner, at de frivillige variabler skal skrives efter de tvungne.
amokk har givet dig svaret. Hvis du giver variablen en værdi når du definerer funtionen, så vil du ikke behøve at angive variablen når du kalder funktionen. Dog skal du huske, som ved alle andre funktioner, at de frivillige variabler skal skrives efter de tvungne.
Genialt. Det var lige det svar jeg skulle bruge. Det giver jo også masser af mening hvis man tænker over det, men jeg vidste sgu ikke lige hvor jeg skulle lede.
Jeg ved self godt det med at variabler ikke må være tal. Bare lige en tanketorsk.
Hvad hvis man har mere end en valgfrie variabler, men kun vil sende en værdi til den ene. Kan man gøre noget i retning af:
blabla("param1",,"param3");
Jeg ved self godt det med at variabler ikke må være tal. Bare lige en tanketorsk.
Hvad hvis man har mere end en valgfrie variabler, men kun vil sende en værdi til den ene. Kan man gøre noget i retning af:
blabla("param1",,"param3");
#11 Acro:
Jeg er ikke helt sikker, men jeg tror du misforstod ideén med at bruge false, NULL eller 0 som argument. Eller også gjorde jeg :)
Hvis man giver false som argument, så vil det faktisk overskrive default værdien. Hvis man ønsker at bruge en default værdi, men vil gøre det muligt at angive et argument efter denne, så må man tjekke om variablen er false i funktionen:
Ved ikke om det er den smarteste måde, men det burde i hvert fald virke. :)
Jeg er ikke helt sikker, men jeg tror du misforstod ideén med at bruge false, NULL eller 0 som argument. Eller også gjorde jeg :)
Hvis man giver false som argument, så vil det faktisk overskrive default værdien. Hvis man ønsker at bruge en default værdi, men vil gøre det muligt at angive et argument efter denne, så må man tjekke om variablen er false i funktionen:
funktion argument($var1, $var2 = 'test', $var3 = 'default') {
if ($var2 == false) $var2 = 'test';
echo "$var1\n$var2\n$var3";
}
// Funktionen kaldes med $var2 = false:
argument('HejHej', false);
// PHP vil så skrive
HejHej
test
default
Ved ikke om det er den smarteste måde, men det burde i hvert fald virke. :)
#10 Amokk
"0" er bestemt ikke lig NULL
Det bliver bevist ved denne kode:
Svaret på selve spørgsmålet (I #1) synes jeg ikke fremgår så tydeligt.
Du kan løse dit problem ved følgende kode:
<?php
function minFunktion($paramter1=NULL, $parameter2=NULL, ..., $parameterN=NULL) {
return true;
}
?>
[/quote]
Hvis en af parametrene ($parameter1, ...) ikke er sat bliver de automatisk sat til NULL istedet for at du får en warning om at der mangler en parameter. Hvis du vil nøjes med at kalde funktionen med fx. de sidste to (af 3) parametre kan du gøre således:
Så vidt jeg husker.
"0" er bestemt ikke lig NULL
Det bliver bevist ved denne kode:
<?php
if ("0" == NULL) {
echo "'0' == NULL";
} else {
echo "'0' != NULL";
}
?>
Svaret på selve spørgsmålet (I #1) synes jeg ikke fremgår så tydeligt.
Du kan løse dit problem ved følgende kode:
<?php
function minFunktion($paramter1=NULL, $parameter2=NULL, ..., $parameterN=NULL) {
return true;
}
?>
[/quote]
Hvis en af parametrene ($parameter1, ...) ikke er sat bliver de automatisk sat til NULL istedet for at du får en warning om at der mangler en parameter. Hvis du vil nøjes med at kalde funktionen med fx. de sidste to (af 3) parametre kan du gøre således:
<?php
minFunktion( , $parameter1, $parameter2);
Så vidt jeg husker.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.