前提
背景
事象(やりたいこと)
- カリキュラムにあった以下コードのforeach文が何しているのか知りたい
/* DB接続済前提 */ // SQL設定 $sql = 'SELECT id, name, hobby FROM users'; // SQLの実行 $result = mysqli_query($link, $sql); // SQLの実行結果を配列に格納 while($row = mysqli_fetch_array($result)){ ~~~ }
試したこと
1
公式マニュアルで確認
知ったこと
- mysqli_fetch_arrayは引数内にSQLの実行結果を格納する。
返り値は配列に格納するデータがあればtrue、データがなければfalseといった感じ。
- whileは( )内でtrueである限り繰り返しを行う。
ここでは$row = mysqli_fetch_array($result)
がtrueを返す、
=配列に格納するデータがある限りtrueを返すので、全データを格納するまで繰り返し処理を行い続ける
$row = mysqli_fetch_array($result)
にデータがなくなった時点でfalseを返すのでwhile文を抜ける、ということになる
所感
マニュアル(1次情報)から信憑性の高い情報を使って関数の意味を確認し、何をしているか把握することができた、という工程を踏むことができたのは成長を感じた
while文の内、
$row
にmysqli_fetch_array($result)
格納することは必要ないと感じた。
(foreach文以降、$rowを使って処理をすることはなかったため)