Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как менять элементы массива объектов в сессии?? 
V
    Опции темы
MeIsGremlin
  Дата 17.3.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Есть вот такой вот массив объектов в сессии. Как мне к примеру получить или изменить значение K_ANY_1 в simpleobjectelement ? 

это меняет лишь в объекте а как сделать такое же в сессии?
Код

foreach ($_SESSION['acl']['object'] as $id => $obj)
{
     $obj -> setName($name)
}


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] => 
        )

)

Это сообщение отредактировал(а) MeIsGremlin - 17.3.2008, 15:46
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
Feldmarschall
Дата 17.3.2008, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



$_SESSION - это обычный массив.
поэтому и работать с ним надо так же, как с любым другим массивом.
В частности, если ты что-то хочешь записать в массив, то надо указывать элемент массива ,в который хочешь записать.
PM   Вверх
MeIsGremlin
Дата 17.3.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(Feldmarschall @ 17.3.2008,  16:05)
$_SESSION - это обычный массив.
поэтому и работать с ним надо так же, как с любым другим массивом.
В частности, если ты что-то хочешь записать в массив, то надо указывать элемент массива ,в который хочешь записать.

 smile 
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
gta4kv
Дата 17.3.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



MeIsGremlin

Код

$_SESSION[ 'element' ] = "value";


Делов то!

Добавлено через 1 минуту и 36 секунд
Код

print $_SESSION[ 'element' ];

Выдаст - value

Добавлено через 2 минуты и 40 секунд
С твоим примером :

Код

print $_SESSION[ 0 ][ 'm_name' ] ;

PM MAIL   Вверх
MeIsGremlin
Дата 17.3.2008, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(gta4kv @ 17.3.2008,  16:52)
MeIsGremlin

Код

$_SESSION[ 'element' ] = "value";


Делов то!

Добавлено @ 16:54
Код

print $_SESSION[ 'element' ];

Выдаст - value

Добавлено @ 16:55
С твоим примером :

Код

print $_SESSION[ 0 ][ 'm_name' ] ;

кажется вы не поняли суть вопроса

complexobjectelement Object  это  Object а не Array тип данных поэтому я не могу просто обратиться как 
Код

print $_SESSION[ 0 ][ 'm_name' ] ;

    это мне ничегоне выведет. А мне нужно как-то поменять значение! Внимательно посмотртите структуру массива я ведь написал что это массив объектов

Добавлено через 1 минуту и 44 секунды
Я пробовал сериализировать и пробовал array_walk но что-то не получается это потом снова вернуть в сессию после изменений
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
gta4kv
Дата 17.3.2008, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Ну тогда:

$array->simpleobjectelement->m_name;

Добавлено через 52 секунды
если и не так, то тогда не понял вопроса smile
PM MAIL   Вверх
MeIsGremlin
Дата 17.3.2008, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Вопрос в том что в сессии хранятся массивы объектов естественно с информацией о классах и прочей лабудой им свойственной. При определенном событии просихмодит следующий перебор

Код

 foreach ($_SESSION['acl']['object'] as $id => $obj )
    {
        if(strcmp(get_class($obj),"complexobjectelement") == 0)
        {
             $obj->setBool($expr)  //  то есть вызываетяс метод объекта
               //  и тд
         }
}


После всего этого хотелось бы соответствующие значение изменить и в сессии чтоб после print_r($_SESSION['acl']['object']) у меня выодился такой-же массив как  тут http://forum.vingrad.ru/forum/topic-201083...1445220/0.html#  но уже с измененными данными

--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
Canarat
Дата 17.3.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 11.3.2008
Где: Каспий

Репутация: 5
Всего: 5



MeIsGremlin, работай тогда не с $obj, а с ссылкой $object=& $_SESSION['acl']['object'][$key] ($object->setBool()) и тогда изменения буду происходить непосредственно в сессии.
PM MAIL   Вверх
MeIsGremlin
Дата 17.3.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



О спасибо большое выручил дружище!
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
MeIsGremlin
Дата 17.3.2008, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



О спасибо большое выручил дружище!
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
Canarat
Дата 17.3.2008, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 11.3.2008
Где: Каспий

Репутация: 5
Всего: 5



MeIsGremlin, пометь тему решенной, вверху страницы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1095 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.