PHP
PHP7

一つのreturn命令文で複数の値を返す方法

通常一つの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%" }