public static function set($name = '', $value = null) { //if(Session::get($name)===$value)return; //если сохранена ссылка то изменение её не попадает в базу данных и не синхронизируется $right = Sequence::right($name); if (is_null($value)) { //Удаление свойства $last = array_pop($right); $val = Session::get($right); if ($last && Each::isAssoc($val) === true) { //Имеем дело с ассоциативным массивом $iselse = false; foreach ($val as $i => $valval) { if ($i != $last) { $iselse = true; break; } } if (!$iselse) { //В объекте ничего больше нет кроме удаляемого свойства... или и его может даже нет //Зачит надо удалить и сам объект return Session::set($right, null); } else { array_push($right, $last); //Если есть ещё что-то то работает в обычном режиме } } } $li = array('name' => $right, 'value' => $value); global $infra_session_data; Session::sync($li); $infra_session_data = Session::make($li, $infra_session_data); }