Почему не работает сессия при передаче по ссылке?

Здравствуйте!
Вот класс:
<?php namespace Src;

/**
 * Class Utm
 * @package Src
 */
class Utm
{

    private $session = [];

    /**
     * Utm constructor.
     * @param $request
     * @param $session
     */
    public function __construct(Array $request, &$session)
    {
        $this->session = $session;
        $this->session['utm'] = $this->parseUtm($request);
    }

    /**
     * @param $request
     * @return array
     */
    private function parseUtm(Array $request)
    {
        if(!empty($request))
            return array_filter($request, function($key) {
                return in_array($key, ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content']);
            }, ARRAY_FILTER_USE_KEY);
    }

    /**
     * @return array
     */
    public function getUtm()
    {
        return isset($this->session['utm']) ? $this->session['utm'] : [];
    }

    /**
     * Destroy session utm
     */
    public function destroyUtm()
    {
        if(isset($this->session['utm'])) {
            unset($this->session['utm']);
        }
    }
}

Стартую так
session_start();
use Src\Utm;
$utm = new Utm($_REQUEST, $_SESSION);
$utm->getUtm();


Конкретно не работает на этапе передаче по ссылке, может что не так делаю?
$_SESSION['test'] = 'test'; работает.

Спасибо!
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov Куратор тега PHP
Web developer
Суперглобальные массивы $_REQUEST и $_SESSION и так везде доступны. Не надо их никуда передавать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы