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

한 페이지에서 폼을 사용하여 사용자에게 이름, 나이, 급여 및 기타 몇 가지를 묻습니다. 이 데이터를 배열 형태로 하나의 세션 변수에 기록하세요. 다른 페이지로 이동할 때 저장된 데이터를 반복문으로 순회하고 각 배열 요소를 ul 태그 안의 li 태그에 출력하세요.