Avatar billede googolplex Novice
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 :(
Avatar billede ohmish Nybegynder
22. juni 2003 - 12:31 #1
husk return;
Avatar billede googolplex Novice
22. juni 2003 - 12:32 #2
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;
}
Avatar billede erikjacobsen Ekspert
22. juni 2003 - 12:59 #3
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");
Avatar billede googolplex Novice
22. juni 2003 - 13:05 #4
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).
Avatar billede erikjacobsen Ekspert
22. juni 2003 - 13:24 #5
så er svaret nej
Avatar billede googolplex Novice
22. juni 2003 - 13:37 #6
Ok, tak for hjælpen :)
Avatar billede googolplex Novice
22. juni 2003 - 13:38 #7
svar ?
Avatar billede olebole Juniormester
22. juni 2003 - 13:43 #8
<ole>

Joooohhhh ....  :)

$tid = time();
define("TID", $tid);

function givTid($variabel = TID) {
    print $variabel;
}

givTid();

/mvh
</bole>
Avatar billede olebole Juniormester
22. juni 2003 - 13:48 #9
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
Avatar billede rrm Nybegynder
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;
}
Avatar billede googolplex Novice
23. juni 2003 - 20:35 #11
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester