session_register

(PHP 4, PHP 5 < 5.4.0)

session_registerРегистрация одной или нескольких глобальных переменных текущей сессии

Описание

session_register ( mixed $name , mixed ...$names ) : bool

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

Вы также можете создать переменную сессии, просто установив соответствующий элемент в массиве $_SESSION.

<?php
// Использование session_register() объявлено устаревшим
$barney "Большой фиолетовый динозавр.";
session_register("barney");

// Использование $_SESSION является предпочтительным
$_SESSION["zim"] = "Захватчик с другой планеты.";
?>

Если функция session_start() не была вызвана перед этой, то произойдет неявный вызов session_start() без параметров. В случае использования $_SESSION этого не произойдет, следовательно необходимо самостоятельно вызвать session_start().

Внимание

Данная функция была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Список параметров

name

Строка, содержащая имя переменной, либо массив, состоящий из имен переменных или других массивов.

names

Возвращаемые значения

Возвращает true в случае успешного завершения или false в случае возникновения ошибки.

Примечания

Предостережение

Если вы хотите, чтобы ваш скрипт работал независимо от register_globals, вам нужно использовать массив $_SESSION, так как записи $_SESSION будут автоматически зарегистрированы. Если ваш скрипт использует session_register(), она не будет работать в условиях, когда директива PHP register_globals отключена.

Замечание: register_globals: важное замечание

Начиная с PHP 4.2.0, значением директивы PHP register_globals по умолчанию является off (выключено). Сообщество PHP рекомендует не полагаться на эту директиву, а использовать вместо этого иные средства, такие как superglobals.

Предостережение

Эта функция регистрирует глобальную переменную. Если вы хотите зарегистрировать сессионную переменную изнутри функции, вы должны сделать эту переменную глобальной с помощью ключевого слова global или с помощью суперглобального массива $GLOBALS[], или использовать специальные сессионные массивы, указанные ниже.

Предостережение

Если вы используете $_SESSION, не используйте session_register(), session_is_registered(), и session_unregister().

Замечание:

Это в настоящее время невозможно зарегистрировать в сессии переменнтую типа resource. Например, вы не можете создать подключение к базе данных, хранить идентификатор соединения как переменную сессии и ожидать подключения к БД по этому идентификатору после восстановления сессии. Функции PHP, которые возвращают ресурсы, имеют в описании тип возвращаемого значения resource. Список таких функций можно посмотреть в приложении типы ресурсов.

Если используются $_SESSION, присваитвайте значения $_SESSION. Пример: $_SESSION['var'] = 'ABC';

Смотрите также

  • session_is_registered() - Определяет, зарегистрирована ли глобальная переменная в сессии
  • session_unregister() - Отмена регистрации глобальной переменной в текущей сессии
  • $_SESSION