การบันทึกอาร์เรย์ในเซสชัน 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

ในหน้าเดียว ใช้ฟอร์มถามผู้ใช้เกี่ยวกับชื่อ, อายุ, เงินเดือน และอย่างอื่นอีกบางอย่าง บันทึกข้อมูลเหล่านี้ลงในตัวแปรเซสชันตัวเดียวในรูปแบบของอาร์เรย์ เมื่อไปยังอีกหน้า ให้วนลูปผ่านข้อมูลที่บันทึกไว้ และแสดงแต่ละองค์ประกอบของอาร์เรย์ในแท็ก li ของตัวเอง ภายในแท็ก ul