PHPセッションへの配列の書き込み

前のレッスンで作成したコードを見てみましょう:

html<?php
  if (!empty($_GET)) {
    $_SESSION['num1'] = $_GET['num1'];
    $_SESSION['num2'] = $_GET['num2'];
  }
?>

実は、フォームのデータすべてを一度に $_SESSIONに書き込むこともできました:

test1.php<?php
  if (!empty($_GET)) {
    $_SESSION = $_GET;
  }
?>

そして、ファイル test2.php では次のようにします:

test2.php<?php
  if (!empty($_SESSION)) {
    echo array_sum($_SESSION);
  }
?>

このアプローチの利点は、フォーム内の入力フィールドの数に関係なく コードが機能することです。

ただし、欠点もあります: $_SESSION を上書きすると、 以前そこにあったすべてのデータが消去されてしまいます。 他のスクリプトが何かを書き込んでいるかもしれません。 それを私たちが削除してしまうのです。

別の方法を試してみましょう:

test2.php<?php
  if (!empty($_GET)) {
    $_SESSION['nums'] = $_GET;
  }
?>

ご覧の通り、セッション変数には単一の値ではなく、 配列全体を書き込みました。 これで、ファイル test2.php で この配列の要素の合計を求めることができます:

test2.php<?php
  if (!empty($_SESSION)) {
    echo array_sum($_SESSION['nums']);
  }
?>
Задание 1

1つのページでフォームを使用して、 ユーザーに名前、年齢、給料、その他何かを尋ねてください。 これらのデータを、配列の形式で1つのセッション変数に保存します。 別のページにアクセスしたときに、 保存されたデータをループで処理し、 各配列要素を ul タグ内の 独自の li タグで出力してください。