一般的なユーザ定義関数では、返り値になるのは1つの値や配列だけです。しかし、参照渡しの特性を利用すると、複数の値を返り値として取得できるようになります。この例では、4つの変数を参照渡しでユーザ定義関数に渡しています。ユーザ定義関数内で処理された計算結果は、呼び出し側の変数にそのまま反映されており、あたかも4つの返り値を得たように処理されます。
<?php header("Content-type: text/html; charset=utf-8"); function testfunc(&$data1, &$data2, &$data3, &$data4){ //各引数に対して演算 $data1 += 100; $data2 -= 5; $data3 *= 3; $data4 /= 8; } $data1 = 10; $data2 = 20; $data3 = 30; $data4 = 40; //関数実行前の各変数値を出力 echo "【関数実行前の変数値】<br>"; echo "data1 → " . $data1 . "<br>"; echo "data2 → " . $data2 . "<br>"; echo "data3 → " . $data3 . "<br>"; echo "data4 → " . $data4 . "<br>"; echo "<br>"; //ユーザ定義関数を呼び出し testfunc($data1, $data2, $data3, $data4); //関数実行後の各変数値を出力 echo "【関数実行後の変数値】<br>"; echo "data1 → " . $data1 . "<br>"; echo "data2 → " . $data2 . "<br>"; echo "data3 → " . $data3 . "<br>"; echo "data4 → " . $data4 . "<br>"; echo "<br>"; ?>