web関連
【PHP】関数で複数の戻り値を指定したいとき
関数内で条件分岐させて値を「return array($a, $b)」みたいに複数返そうと思ったら出力方法が特殊だったので備忘録
関数の戻り値を複数設定する方法
関数
<?php
function load_contents($name) {
if ($name == "name01") {
$a = "テキスト01";
$b = "テキスト02";
$c = "テキスト03";
}
if ($name == "name02") {
$a = "テキスト04";
$b = "テキスト05";
$c = "テキスト06";
}
return array($a, $b, $c);
}
?>
出力用コード
<?php
list($a, $b, $c) = call_user_func("load_contents","name01");
echo $a . '<br>';
echo $b . '<br>';
echo $c;
?>
call_user_func()
だと引数の参照渡しが駄目らしいので値渡ししかできないみたい
参照渡しをしたかったらcall_user_func_array()
を使うらしい
call_user_func()
で呼び出した関数の配列の値をlist()
を使って変数に代入して使えるようにする
作成した関数側で$a,$b,$c
って変数用意しているからといってlist()
側の変数名も一緒にする必要はないみたい
一部取得したかったら単純に変数用意しなければよさげ
list(, $b, $c) = call_user_func("load_contents","name01");
phpの参照渡しについてはこのサイトがわかりやすかった
関数内の戻り値を複数取得したことなかったから調べてみたけど、参照渡しだとかlist()、call_user_func()と初めて聞いたわ
この辺もどこで使うのかよくわからんけど勉強するかな…
ゴリゴリphp書く人たちが使うもんなのかな?使ったことない