Очистка переменной?

voland

Guest
Очистка переменной?

Как можно очистить все переменные сессии, не закрывая её?
 

Mammoth

Guest
Какое странное желание... Зачем тебе это?
 

Mammoth

Guest
2 .des.

session_unregister - удаляет только одну переменную из сессионного файла.

unset - вообще не работает с сессионным файлом.
 

.des.

Поставил пиво кому надо ;-)
А я и не говорил что все. Пусть по одной и анрегит.

session_unregister
This function doesn't unset the corresponding global variable for name, it only prevents the variable from being saved as part of the session. You must call unset() to remove the corresponding global variable.
---------------------------------------------------------------------------
насчет unset

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister().

В чем заключается твоя поправка?
 

.des.

Поставил пиво кому надо ;-)
Сессионный файл? :)
а когда я делаю так
$_SESSION["var"]=5;
unset($_SESSION["var"]);

С чем я работаю? :)
 

Mammoth

Guest
И все-таки, voland, если не секрет - зачем тебе удалять все данные из сессионного файла?
 

Mammoth

Guest
В приведенном тобой примере ты работаешь с сессионной переменной. ;-)
 

voland

Guest
Просто по сессии я передаю около 30 переменных их очистку я делал через unset, думал, что можно очистить их сразу!

Хотя щас думаю, может их в массив закинуть и очищать как массив!
 

.des.

Поставил пиво кому надо ;-)
Mammoth ты меня натолкнул на размышления...
вот все таки чем же отличается одно от другого?
$_SESSION["var"]=5;
и session_register("v")
$v=5;
Кроме того что я регистрирую глобальную переменную.
Второй способ жутко неудобен..
мне кажется разницы в работе с сессионным файлом нет как таковой.
Я вот даже не знаю сериализуются ли переменные сразу или при завершении скрипта.
Но имхо разницы в работе с сессионным файлом у этих двух конструкций нет :)
 

Mammoth

Guest
Может быть и нет разницы. Все что мог, я уже написал. Я предпочитаю работать именно с session_register, а не с $_SESSION - во избежание глюков.

ЗЫ. Кстати, у session_register (session_unregister) есть довольно серьезное отличие от механизма $_SESSION - они возвращают результат своей работы.
 

.des.

Поставил пиво кому надо ;-)
Ну да возвращают но никто и мне не мешает проверить isset($_SESSION["var"]);
Зато я избегаю конфликта имен и к тому же мне не приходится рисовать конструкции подобные этой
PHP:
function a()
{
  $GLOBALS["var"]=5;
  session_register("var");
}
Похоже вопрос "религиозный" и переходит в флейм :)
 

Mammoth

Guest
1. isset всего лишь проверит, установлена ли данная переменная.
2.
PHP:
function a() 
{ 
  $var=5; 
  session_register("var"); 
}
 

.des.

Поставил пиво кому надо ;-)
2Mammoth какой будет результат у следующего примера? :)
PHP:
session_start();
function a()  
{  
  $var=5;  
  session_register("var");  
}
a();
echo $var;
 

Mammoth

Guest
Глупый пример. Если нужно получить значение $var, занесенной в сессию - сделай переход и посмотри.
 

Mammoth

Guest
> А нужно что то еще?

Я использую сессии только для того, чтобы передать значение переменной между скриптами. Для использования переменной в контексте данного скрипта глупо использовать регистрацию в сессии (точнее занесение переменной в массив $_SESSION).
 

.des.

Поставил пиво кому надо ;-)
Ну вот глупый пример :D
Почему ты так упорствуешь? Неужели тебе не видна выгода держать сессионные переменные в своем контейнере - причем контейнер суперглобальный и везде доступен.. и не надо заморачиваться локальная или глобальная это переменная..
 
Сверху