MakeSession - установить по заданному имени новое значение сессионной переменной на сервере (элемента в массиве $_SESSION) и вернуть это значение для записи в локальную переменную.

Функция установливает по заданному имени новое значение соответствующей глобальной сессионной переменной (то есть элемента в массиве $_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 ***