Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Как менять элементы массива объектов в сессии?? |
Автор: MeIsGremlin 17.3.2008, 15:40 | ||
Есть вот такой вот массив объектов в сессии. Как мне к примеру получить или изменить значение K_ANY_1 в simpleobjectelement ? это меняет лишь в объекте а как сделать такое же в сессии?
Array ( [0] => simpleobjectelement Object ( [m_name] => K_ANY_1 [m_pmod] => [m_protocol] => ICAP [m_dir] => [m_src] => [m_dest] => [m_filetype] => [m_file_ext] => [m_comment] => [m_dst] => ) [1] => simpleobjectelement Object ( [m_name] => icap [m_pmod] => [m_protocol] => ICAP [m_dir] => [m_src] => [m_dest] => [m_filetype] => [m_file_ext] => [m_comment] => [m_dst] => ) [2] => simpleobjectelement Object ( [m_name] => TEST [m_pmod] => [m_protocol] => ANY [m_dir] => [m_src] => [m_dest] => [m_filetype] => [m_file_ext] => [m_comment] => [m_dst] => ) [3] => simpleobjectelement Object ( [m_name] => POP21 [m_pmod] => [m_protocol] => ANY [m_dir] => [m_src] => [m_dest] => [m_filetype] => [m_file_ext] => [m_comment] => [m_dst] => ) [4] => simpleobjectelement Object ( [m_name] => p2p [m_pmod] => UNSECURE [m_protocol] => P2P [m_dir] => [m_src] => [m_dest] => [m_filetype] => [m_file_ext] => [m_comment] => [m_dst] => ) [5] => complexobjectelement Object ( [m_name] => myname_1 [m_pmod] => [m_protocol] => [m_bool_expr] => K_ANY_1 [m_comment] => mycomment ) [6] => complexobjectelement Object ( [m_name] => p2pcompl [m_pmod] => [m_protocol] => [m_bool_expr] => p2p [m_comment] => ) [7] => complexobjectelement Object ( [m_name] => qq [m_pmod] => [m_protocol] => [m_bool_expr] => p2p [m_comment] => ) ) |
Автор: Feldmarschall 17.3.2008, 16:05 |
$_SESSION - это обычный массив. поэтому и работать с ним надо так же, как с любым другим массивом. В частности, если ты что-то хочешь записать в массив, то надо указывать элемент массива ,в который хочешь записать. |
Автор: MeIsGremlin 17.3.2008, 16:16 | ||
![]() |
Автор: gta4kv 17.3.2008, 16:52 | ||||||
MeIsGremlin,
Делов то! Добавлено через 1 минуту и 36 секунд
Выдаст - value Добавлено через 2 минуты и 40 секунд С твоим примером :
|
Автор: MeIsGremlin 17.3.2008, 17:05 | ||||||||||
кажется вы не поняли суть вопроса complexobjectelement Object это Object а не Array тип данных поэтому я не могу просто обратиться как
это мне ничегоне выведет. А мне нужно как-то поменять значение! Внимательно посмотртите структуру массива я ведь написал что это массив объектов Добавлено через 1 минуту и 44 секунды Я пробовал сериализировать и пробовал array_walk но что-то не получается это потом снова вернуть в сессию после изменений |
Автор: gta4kv 17.3.2008, 17:09 |
Ну тогда: $array->simpleobjectelement->m_name; Добавлено через 52 секунды если и не так, то тогда не понял вопроса ![]() |
Автор: MeIsGremlin 17.3.2008, 17:23 | ||
Вопрос в том что в сессии хранятся массивы объектов естественно с информацией о классах и прочей лабудой им свойственной. При определенном событии просихмодит следующий перебор
После всего этого хотелось бы соответствующие значение изменить и в сессии чтоб после print_r($_SESSION['acl']['object']) у меня выодился такой-же массив как тут http://forum.vingrad.ru/forum/topic-201083/unread-1/anchor-entry1445220/0.html# но уже с измененными данными |
Автор: Canarat 17.3.2008, 17:43 |
MeIsGremlin, работай тогда не с $obj, а с ссылкой $object=& $_SESSION['acl']['object'][$key] ($object->setBool()) и тогда изменения буду происходить непосредственно в сессии. |
Автор: MeIsGremlin 17.3.2008, 17:53 |
О спасибо большое выручил дружище! |
Автор: MeIsGremlin 17.3.2008, 17:54 |
О спасибо большое выручил дружище! |
Автор: Canarat 17.3.2008, 17:57 |
MeIsGremlin, пометь тему решенной, вверху страницы. |