(PHP) list関数の使い方【配列を効率よく受け取る】

(PHP) list関数の使い方【配列を効率よく受け取る】

 

 

本記事では、
phpのlist関数の使い方について解説をする。

list関数を使えば、
配列を効率良く受け取ることができる

そのため、
ソースコードがスッキリとし、結果としてソースの可読性が向上すると言うメリットがある。

では早速phpのlist関数について、解説に移っていく。

 

phpのlist関数とは、使い方

phpのlist関数とは、、簡単に言うと、
戻り値の配列を効率良く受け取ることができる関数だ。

phpのlist関数の使い方は以下

# phpのlist関数の使い方

list($変数, $変数, $変数, ・・・) = 配列を渡す処理;

 

上記から見て取れるように、
list関数は配列の値を受け取る際に使用するちょっと特殊な関数である。
そのため、一般に想像する関数とは使用するタイミング・箇所が異なると感じることだろう。

 

構文だけ見てもいまいち具体性が湧かないと思う。
なので次にサンプルコードを紹介して使い方を説明する。

 

 

phpのlist関数のサンプルプログラム① 配列の全てを取得する




では次に
phpのlist関数のサンプルコードを紹介して使い方を説明する。

phpのlist関数のサンプルコード。

<?php
 
function getNum(){
 
  $array = [100, 200, 300];
  return $array;
}
 
//配列を返す関数から値を取得する
list($val1, $val2, $val3) = getNum();      #list関数を使用して戻り値を受け取る
 
echo $val1.','.$val2.','.$val3;
 

 

#実行結果

100,200,300

 

上記サンプルプログラムならばlist関数の使い方がより具体的に理解していただけるだろう。

配列を戻り値として返すファンクションに対してlist関数を使用し、値を受け取ると言うことをしている。

 

phpのlist関数のサンプルプログラム② 配列の一部のみ取得する

配列の値を1部のみ取得したい場合は、
代入したい箇所だけに変数を指定し、代入しない箇所は,(カンマ)のみとする。

サンプルプログラム

$array = [11, 22, 33, 44, 55];

 
list(, , $val3, , $val5) = $array;

 
echo $value3.','.$value5;
# 実行結果

33,55

 

上記サンプルでは、list関数で戻り値の配列を受け取る際、配列の33と55の箇所のみ変数を用意して、その他の箇所は空欄にしている。

この場合、空欄の箇所は受け取りを無視することができ、結果として、配列の一部のみ取得すると言うことが可能となる。

 

 

補足:PHP7からの変更点

PHP5では右のパラメータから値を代入していたが、PHP7からの変更点として、左のパラメータから代入するようになった。つまり、変数への代入は、定義された順番通り値が代入されると言うことだ(より直感的でわかりやすい)。

また、list()の式を空にすることや文字列は扱えなくなった

 

 

phpのlist関数のメリット

最後に、phpのlist関数を使うことのメリットは以下のようなことが挙げられる。

 

phpのlist関数を使うことのメリット
  1. 配列のキーを指定して値を1つずつ取り出すより、記述量が少なくて済み、効率が上がる。
  2. 配列のキーを指定して値を1つずつ取り出すより、可読性が上がる

 

phpのlist関数はぶっちゃけ使っても使わなくてもプログラム実装にそこまで大きな影響を及ぼすような関数ではないだろう。

だが、上記であげたメリットのように、プログラムをより効率的に、分かりやすく記述するためにと言う点でメリットが大きい関数なので、phpユーザの方であればぜひ頭の片隅に入れておきたい関数の一つだ。

 

phpのlist関数まとめ

phpのlist関数とは簡単に言うと、
戻り値の配列を効率良く受け取ることができる関数のこと。

 

phpのlist関数の使い方は以下

# phpのlist関数の使い方

list($変数, $変数, $変数, ・・・) = 配列を渡す処理;

 

phpのlist関数を使うことのメリットは以下。

phpのlist関数を使うことのメリット
  1. 配列のキーを指定して値を1つずつ取り出すより、記述量が少なくて済み、効率が上がる。
  2. 配列のキーを指定して値を1つずつ取り出すより、可読性が上がる

 

関連記事

 

(PHP) glob関数の使い方【ファイルを一覧取得する】
(PHP) strstr関数・stristr関数の使い方と違いを解説
(PHP) array_merge関数の使い方【array_merge_recursiveとの違いも】
(PHP) ob_start()で、標準出力をバッファリングする

 

https://www.php.net/manual/ja/function.list.php

PHPのlistで一連の変数に代入する方法【初心者向け】現役エンジニアが解説

https://techacademy.jp/magazine/11654

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。