Just nu i M3-nätverket
Gå till innehåll

Hämta variabler från funktion?


Tom Lönnevik

Rekommendera Poster

Tom Lönnevik

Gör en funktion som ska ta fram nästa giltiga datum. Funktionen borde öka på $date med 1 varje gång den körs, men det gör den inte. Varför??

 

-------------->

 

function next_valid_date($year, $month, $date)

{

$date++;

$valid = checkdate($year, $month, $date);

if ($valid)

{ }

}

 

-------------->

 

Tar inte det anropande dokumentet emot variabelvärden som sätts i funktionen?

 

Ungefär så här vill jag att funktionen ska se ut när den är klar:

 

-------------->

 

function next_valid_date($year, $month, $date)

{

$date++;

$valid = checkdate($year, $month, $date);

if ($valid)

{ }

else

{

$month++;

$date = 1;

$valid = checkdate($year, $month, $date);

if ($valid)

{ }

else

{

$year++;

$month = 1;

$date = 1;

}

}

}

 

-------------->

 

Några konstigheter?

 

//Mvh Tom

 

 

-------------Kl 15.16 - mysteriet är löst--------

Det var fel ordning i funktionen checkdate!

 

Men min fråga om variablers användning utanför en funktion återstår.

 

[inlägget ändrat 2002-09-03 15:17:45 av Tom Lönnevik]

Länk till kommentar
Dela på andra webbplatser

Du får returnera det värdet om du vill ha det tillbaks till den anropande sidan.

 

Alternativt kan du göra globala variabler av det hela, men det vet jag inte om jag själv skulle göra, för mycket globala variabler är aldrig bra utan gör bara det svårare att förstå vartifrån värdet på variabeln kommer.

 

Länk till kommentar
Dela på andra webbplatser

En liten klargöring till Bj0rNs svar:

Man returnerar ett värde från en funktion genom att anropa

return värde;

 

All kod kvar i funktionen hoppas då över. För att returnera flera variabler, gör en array av dem.

 

Ex.

function test_funktion($i, $j) {
$i++;
$j++;
return array($i, $j);
$i++; // Detta kommer aldrig att exekveras
}

$variabel_a = 10;
$variabel_b = 500;

list($a, $ = test_funktion($variabel_a, $variabel_;

echo $a;
echo "<br>";
echo $b;

 

Detta kommer då att ge utskriften:

11

501

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...