22. juni 2003 - 12:29
Der er
10 kommentarer og 1 løsning
Funktion som default værdi
Jeg har følgende funktion function ($timestamp) { gør noget med $timestamp; } Jeg vil gerne give funktionen defaultværdien time(), hvordan gør jeg det ? Har prøvet med 'function ($timestamp = time())' og 'function ($timestamp = "time()")', men kan ikke få det til at virke :(
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Den har jeg, gad bare ikke skrive hele funktionen: function dato($timestamp) { /* Ugedagens navn findes */ $ugedage = array("Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"); $ugedag = date("w", $timestamp); /* Månedens navn findes */ $maaneder = array("december", "januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november"); $maaned = date("n", $timestamp); /* Den aktuelle dag (1 til 28-31) findes */ $dag = date("j", $timestamp); /* Det aktuelle år findes */ $aar = date("Y", $timestamp); /* Dato og tid sammensættes */ $dato = "$ugedage[$ugedag] d. $dag. $maaneder[$maaned] $aar"; return $dato; }
Sådan noget som det her (bare en test): function f() { $numargs = func_num_args(); if ($numargs==1) { return "Radiser og ".func_get_arg(0); } else { return time(); } } print f(); print f("kartofler");
Ja, den er jeg helt med på, men jeg ville gerne have at vide om man kan sætte en defaultværdi med det samme, som fx.: function ($variabel = 123) {blah} , men hvor defaultværdien er en funktion (time()) og ikke en streng eller et tal ? Jeg vil gerne undgå at have løsningen indeni funktionen (det har jeg nu).
<ole> Joooohhhh .... :) $tid = time(); define("TID", $tid); function givTid($variabel = TID) { print $variabel; } givTid(); /mvh </bole>
Men det kommer selvfølgelig anpå, hvad du skal bruge det til. Denne: $tid = time(); define("TID", $tid); function givTid($variabel = TID) { print $variabel."<br>\n"; } givTid(); sleep(5); givTid(); vil selvfølgelig printe samme stamp to gange :) /mvh
22. juni 2003 - 15:36
#10
Man kan vel lave det via en omvej. Noget ligne kan vel bruges: function test($svar = "") { if($svar == "") $svar = true; echo $svar; }
23. juni 2003 - 20:35
#11
lukker
Vi tilbyder markedets bedste kurser inden for webudvikling