PHP 세션에 배열 기록하기
이전 강의에서 우리가 작성한 코드를 살펴봅시다:
<?php
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
사실 폼의 모든 데이터를 한 번에
$_SESSION에 기록할 수도 있었습니다:
<?php
if (!empty($_GET)) {
$_SESSION = $_GET;
}
?>
그리고 test2.php 파일에서 다음과 같이 할 수 있습니다:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION);
}
?>
이 접근 방식의 장점은 폼에 있는 입력 필드의 개수에 상관없이 우리 코드가 동작한다는 것입니다.
그러나 단점도 있습니다: $_SESSION을 덮어쓰면
이전에 거기에 있던 모든 데이터를 지우게 됩니다.
우리의 다른 스크립트가 무엇을 기록했을지 모르는데,
우리가 그것을 삭제해 버리는 것이죠.
다른 방법을 사용해 봅시다:
<?php
if (!empty($_GET)) {
$_SESSION['nums'] = $_GET;
}
?>
보시다시피, 우리는 세션 변수에 단일 값이 아닌
전체 배열을 기록했습니다.
이제 test2.php 파일에서 이 배열 요소들의
합계를 찾을 수 있습니다:
<?php
if (!empty($_SESSION)) {
echo array_sum($_SESSION['nums']);
}
?>
한 페이지에서 폼을 사용하여 사용자에게
이름, 나이, 급여 및 기타 몇 가지를 묻습니다.
이 데이터를 배열 형태로 하나의 세션 변수에 기록하세요.
다른 페이지로 이동할 때 저장된 데이터를
반복문으로 순회하고 각 배열 요소를
ul 태그 안의 li 태그에 출력하세요.