PHPのlistで一連の変数に代入する方法【初心者向け】

プログラミング初心者向けにPHPのlistで一連の変数に代入する方法について解説しています。PHPの開発作業を行う中で頻繁に利用する知識ではないですが、効率良く進められる便利な表現なので、ぜひ覚えておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PHPのlistを使って一連の変数に代入する方法について紹介しています。単一の操作で一連の変数に値を代入することができるので、効率よく作業ができるでしょう。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

 

大石ゆかり

田島メンター!関数の戻り値が1つではなく、たくさんの値が入っている配列だったのですが、スマートに受け取る方法はありませんか?

田島悠介

今回紹介するlist関数がいいね。配列の値を変数に順番に代入してくれるんだ。

大石ゆかり

配列の値の数の分だけ、変数を用意すれば順番に代入してくれるってことですか?

田島悠介

そうそう。では、さっそくlist関数の書き方を見てみよう!

 

listとは

listを使用すると、配列の各値を複数の変数に一度に代入することができます。

 

listの書き方

listは以下のように記述します。

list(変数) = 配列

( )内に配列の値を代入したい変数を、配列の順番に合わせて入力します。配列の要素の中から対応した値が変数に代入されます。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

基本の例

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $arr = array(1,10,100);
      list($int1, $int2, $int3) = $arr;
      echo $int3;
    ?>
  </body>
</html>

まず”1,10,100″の3つの数字が格納された配列$arrを作成します。

次にlistを使用してそれらを$int1,$int2,$int3の3つの変数にそれぞれ代入します。

最後に$int3を出力します。画面ではこのように表示されます。

php_list_1

$int3には$arr[2]の”100″が代入されているため、それが出力されます。

 

数が合わない場合の例

配列の要素の数と、listで指定した要素の数が合わない場合の例です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $arr = array(1,10,100);
      list($int1, $int2, $int3,$int4) = $arr;
      var_dump ($int1);
      echo "<br />";
      var_dump ($int4);
    ?>
  </body>
</html>

先ほどと同様に3つの数字の入った配列&arrを作成し、listで今度は$int1,$int2,$int3,$int4の4つの変数を指定します。

次に$int1$int4のそれぞれの変数の情報をvar_dumpで出力します。

結果は以下のようになります。

php_list_2

現在のバージョンでは変数への代入は、定義された順番の通りに行われます。

そのため$int1には$arr[0]の整数”1″が入り、$int4には該当する値がないためNULLが表示されます。

 

部分だけ取得したい場合の例

配列の中から特定の部分だけを変数に代入する場合の例です。代入を行いたい部分だけに変数を指定し、他の箇所は空欄にします。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $arr = array(1, 10, 100);
      list( , $int, ) = $arr;
      echo ($int);
    ?>
  </body>
</html>

ここでは配列$arrの中から$arr[1]の部分を$intに代入し、それを出力します。

結果は以下のようになります。

$arr[1]の値、整数の”10″が$intの値となるためそれが画面に表示されます。

php_list_3

 

キーが文字列の場合の例

配列のキーが0からなどの数値(数値添字)ではなく文字列で指定されている場合にはlistによる代入は適用されません。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <?php
      $arr = array(
        "month" => 2,
        "year" => 2017,
      );
      list( $int1, $int2) = $arr;
      var_dump ($int1);
      var_dump ($int2);
    ?>
  </body>
</html>

ここではキーが”month”,”year”でそれぞれに”2″,”2017″の2つの値が格納された配列$arrを最初に作成します。

次に、先ほどまでと同様にlistによってそれぞれを$int1,$int2に代入するように指定します。最後に各変数の情報をvar_dumpによって出力します。

結果はこのようになります。

listによる代入は適用されず、NULLが画面に表示されます。

php_list_4

 

おわりに

以上、PHPのlistで一連の変数に代入する方法を紹介しました。

 

大石ゆかり

listで指定した左側の変数から順番に、配列の値が代入されていますね!

田島悠介

この例では単なる数値だけど、商品の名前を入力すると、値段やメーカー名や在庫数が返ってくるような関数の戻り値を受け取る時に使うような感じがいいね。

大石ゆかり

それはわかりやすいですねー。

 

また、PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。