Avatar billede RasmusTheR Seniormester
06. oktober 2014 - 18:23 Der er 5 kommentarer og
2 løsninger

Hent flere variabler ud af function

Hvordan laver man en function, hvorfra man kan hante flere variabler ud?

fx

function udregn($x,$y) {
  $z=$x+$y;
  $v=$x-$y;
  return $z;
  return $v;
}


Kan man kalde denne function sådan, at jeg både får $z og $v ud?
Avatar billede arne_v Ekspert
06. oktober 2014 - 18:33 #1
Returner en instans af en klasse med flere felter.

Eller returner et associativt array med flere elementer.
Avatar billede olsensweb.dk Ekspert
06. oktober 2014 - 19:00 #2
// test data
$a=5;
$b=4;
$sum=0;
$dif=0;

kig på call by referance
http://php.net/manual/en/language.references.pass.php
function udregn($x,$y, &$z, &$v) {
  $z=$x+$y;
  $v=$x-$y; 
}
udregn($a,$b, $sum, $dif);
echo $sum;
echo "<br>";
echo $dif;

ellers er der kun som arne skriver at retunere et array
enten numerisk eller et associativt array med flere elementer.

// som numerisk
function udregn($x,$y) { 
  $z=$x+$y;
  $v=$x-$y; 
  return ($z,$v ); 
}
$ar = udregn($a,$b);
echo "sum" .$ar[0];
echo "dif" .$ar[1];



// som associativt
function udregn($x,$y) { 
  $z=$x+$y;
  $v=$x-$y; 
  return ("sum"=>$z,"dif"=>$v ); 
}

$ar = udregn($a,$b);
echo "sum" .$ar['sum'];
echo "dif" .$ar['dif'];

nb eksemplerne er utested
Avatar billede arne_v Ekspert
06. oktober 2014 - 19:36 #3
Mine preferencer er:
1) class
2) associative array
3) indexed array
4) pass by ref
Avatar billede dilling-hansen Nybegynder
24. oktober 2014 - 08:15 #4
http://php.net/manual/en/functions.returning-values.php

function udregn($x,$y) {
  $z=$x+$y;
  $v=$x-$y;
  return array($z, $v);
}

list($z, $v) = udregn(5, 10);
Avatar billede RasmusTheR Seniormester
08. november 2014 - 17:21 #5
Arne_v og ronols vil I oprette svar :-)
Avatar billede arne_v Ekspert
08. november 2014 - 20:30 #6
svar
Avatar billede olsensweb.dk Ekspert
08. november 2014 - 20:55 #7
svar
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

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