2019/11/12更新

[PHP] 関数から複数の値を返す。複数の変数で一度に受け取る(タプル代入)

このエントリーをはてなブックマークに追加      

PHPの関数はarray()を用いて複数の値を返却できます。またそれらの値をlist()を用いて、複数の変数へ一気に代入できます。今日はその実装方法をブログに書きたいと思います。



目次




関数で、複数の値を返す

PHPの関数で複数の値を返したい場合、array()を用いて複数の値を返却できます。
function getPerson() {
    $name = 'Yohei';
    $age = 33;
    return array($name, $age);
}

$person = getPerson();
echo $person;  // [ 'Yohei', 33 ]
配列に複数の値を入れて返す、というのはシンプルで分かりやすいですね。



list()を用いて、複数の変数に一括代入する

PHPでは、list()を用いて、複数の値を複数の変数に一度に代入できます。
list($name, $age) = array('Yohei', 33);
echo $name;  //'Yohei'
echo $age;   //33
また、PHP7.1以降では配列記述で受け取ることもできます。
[ $name, $age ] = array('Yohei', 33);
echo $name;  //'Yohei'
echo $age;   //33
なお他の言語では、この機能をタプル展開やタプル代入と呼ぶ場合があります。



関数で複数の値を返却して、list()で複数変数に一括代入する

上記2点を組み合わせると、関数からの複数の戻り値を、複数の変数に一度で代入できます。
// 配列で複数の値を返却する.
function getPerson() {
    $name = 'Yohei';
    $age = 33;
    return array($name, $age);
}

// list() で一気に受け取る.
list($name, $age) = getPerson();
echo $name;  //'Yohei'
echo $age;   //33
関数からの戻り値を複数で扱えるようになると、実装幅がグッと拡がります。



最後に

今回の内容は実装幅が広がりますし、コードもシンプルになるので、知っていて損はないと思います。少しずつPHPでの開発ノウハウも貯めていきたいなと思っています。

最後になりますが本ブログでは、PHP、フロントエンド、Python、インフラ、サーバー、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSTwitterをフォローして貰えたら嬉しいです ^ ^

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。