Функция установливает по заданному имени новое значение соответствующей глобальной сессионной переменной (то есть элемента в массиве $_SESSION) и возвращает это значение наружу в модуль, вызвавший функцию. Снаружи данное значение записывается в локальную переменную.
Стиль программирования с использованием библиотеки TPhpPrown рекомендует в коде использовать локальные сессионные переменные, которым назначаются имена с префиксом "s_", предполагая неявное хранение их значений на сервере в массиве $_SESSION. Например, по заданному имени "Counter" устанавливается локальная переменная $s_Counter и глобальная в массиве $_SESSION["Counter"].
Иногда требуется установить значение только для несуществующей сессионной переменной для того, чтобы инициировать определенные действия. В этом случае функция предлагает параметр $Init с указанием значения true.
Время жизни сессионной переменной, как правило, совпадает со временем, в течение которого у пользователя открыт браузер. Кроме этого для каждого сайта включается тайм-аут, по умолчанию равный 24 минутам. Если в течение этого времени никаких действий на сайте не происходит (а браузер продолжает быть открытым), то сессия завершается и умирают сессионные переменные. Это время может быть изменено на сервере в настройках PHP.
Синтаксис
$Result=MakeSession($Name,$Value,$Type,$Init=false);
Параметры
$Name - имя сессионной переменной (по имени сессионной переменной формируется глобальная переменная сайтовой страницы и соответствующая локальная переменная с добавлением префикса "s_"). Например: $Name="Counter" --> $_SESSION["Counter"] --> $s_Counter; $Value - значение сессионной переменной и соответствующей глобальной переменная сайтовой страницы; $Type - константа, определяющая тип значения: array, object, integer, double, string, boolean, null. $Init = true, это означает, что требуется установить указанное значение сессионной переменной, только в том случае, если её еще не было. Обычно (по умолчанию, когда $Init=false) значение переменной меняется всегда.
Возвращаемое значение
$Result - установленное значение заданного элемента глобального массива $_SESSION на сервере сайта и соответствующей локальной сессионной переменной сайтовой страницы;
<?php namespace prown;
// PHP7/HTML5, EDGE/CHROME *** MakeSession.php ***
// ****************************************************************************
// * TPhpPrown Установить по заданному имени новое значение *
// * сессионной переменной на сервере (элемента в массиве *
// * $_SESSION) и вернуть это значение для записи в локальную переменную *
// * *
// * v1.1, 31.05.2019 Автор: Труфанов В.Е. *
// * Copyright © 2019 tve Дата создания: 25.05.2019 *
// ****************************************************************************
require_once "MakeType.php";
function _MakeSession($Name,$Value,$Type)
{
$Result=MakeType($Value,$Type);
$_SESSION[$Name]=$Result;
return $Result;
}
function MakeSession($Name,$Value,$Type,$Init=false)
{
// Устанавливаем значение, если инициализация
if ($Init===true)
{
if (!(IsSet($_SESSION[$Name])))
{
$Result=_MakeSession($Name,$Value,$Type);
}
else $Result=$_SESSION[$Name];
}
// Устанавливаем значение в обычном режиме
else $Result=_MakeSession($Name,$Value,$Type);
return $Result;
}
// ******************************************************** MakeSession.php ***