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 тегінде шығарыңыз.