|
|
|
| Здраствуйте, можно ли непосредственно зарегестрировать массив в качестве переменной сессии? Мой опыт показывает, что нет :)
Одним из вариантов решения данной проблемы может стать применение implode() and explode(). Пример:
Модуль session1.php
<?php
session_start();
$Abc = array('Alpha', 'Beta', 'Gamma', 'Delta', 'E-psilon', 'Zeta', 'Eta', 'Theta', 'Iota', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Xi', 'O-micron', 'Phi', 'Rho', 'Sigma', 'Tau', 'U-psilon', 'Phi', 'Chi', 'Psi', 'O-mega');
$AbcStr = implode("|", $Abc);
session_register('AbcStr');
print "Новая сессия началась<br>";
print "<a href=session2.php>посмотреть содержимое массива</a>";
?>
|
Модуль session2.php
<?php
session_start();
$AbcStr = $_SESSION['AbcStr'];
$Abc = explode("|", $AbcStr);
for($i = 0; $i < count($Abc); $i++)
print $Abc[$i]."<br>";
?>
|
Есть еще какие-нибудь способы? Заранее спасибо за ответ | |
|
|
|
|
|
|
|
для: antf
(16.02.2005 в 05:44)
| | Дело в том, что имя сессии должно подчиняться правилам именования переменных $AbcStr, поэтому здесь ограничение не только на массивы, но и на числа: нельзя, чтобы имя состояло полностью из чисел или использовать числовые индексы при работе с сессиями. | |
|
|
|
|
|
|
|
для: antf
(16.02.2005 в 05:44)
| | Думаю можно использовать функции serialize() и unserialize().
Например:
<?
$arr = array("qqq","www","ppp");
$ser = serialize($arr);
// Получаем массив обратно:
$arr = unserialize($ser);
?>
|
| |
|
|
|
|
|
|
|
для: isset
(16.02.2005 в 16:15)
| | Тоже неплохой способ. Я даже попробовал :) | |
|
|
|