Just nu i M3-nätverket
Jump to content

Hämta variabler från funktion?


Tom Lönnevik

Recommended Posts

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]

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...