通常一つのreturn文では複数の値を返すことができない。
ただ返す値を配列にしてあげることで問題は解決する。
ex.配列で返す)
//テストの点数配列を用意
$testScore = ['math' => '70',
'japanese' => '60',
'english' => '80',
'history' => '50'
];
//returnで配列を返している
function grade($testScore) {
$total = array_sum($testScore);
$count = count($testScore);
$median = $total / $count;
$rate = ($total / '500') * '100'.'%';
return array($total, $median, $rate);
}
$array = grade($testScore);
var_dump($array);
//array(3) { [0]=> int(260) [1]=> int(65) [2]=> string(3) "52%" }
因みに連想配列にして返すことも可能だ。
ex.連想配列で返す)
....
function grade($testScore) {
$total = array_sum($testScore);
$count = count($testScore);
$median = $total / $count;
$rate = ($total / '500') * '100'.'%';
return array('total' => $total,
'median' => $median,
'rate' => $rate
);
}
$array = grade($testScore);
var_dump($array);
//array(3) { ["total"]=> int(260) ["median"]=> int(65) ["rate"]=> string(3) "52%" }