Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблема с видимостью переменной.


Автор: Neox_GeForce 4.12.2011, 17:44
У меня есть FrontController который создает новый обьект каждый раз при входящем запросе.(К примеру "/login/index" или "login/test")

Код

$className = $controller . 'Controller';
$function = $action . 'Action';
$object = new $className();
$object->$function();


И тестовый класс.

Код

<?php
class loginController extends Core_BaseController
{

    function indexAction()
    {
        $session = createSession();
        $this->session = $session;
    }

    function testAction()
    {       
        var_dump($this->session); // Нет значения

    }
}


При повторном запросе будет опять создаваться уже НОВЫЙ обьект и в нем не будет инициализированная переменная. А мне нужно чтобы значение было (ну конечно при условии что я перед этим вызывал indexAction).

Я понимаю что php-интерпретатор будет заново обрабатывать код и глупо надеяться что переменная будет установлена. Как можно обойти это ограничение ? 

Автор: ksnk 4.12.2011, 18:26
Цитата(Neox_GeForce @  4.12.2011,  17:44 Найти цитируемый пост)
При повторном запросе будет опять создаваться уже НОВЫЙ обьект

Это какой такой повторный запрос? Очередное нажатие на кнопку пользователя в своем броузере?
В этом случае можно использовать сессию.

Автор: skyboy 4.12.2011, 23:51
Цитата(Neox_GeForce @  4.12.2011,  16:44 Найти цитируемый пост)
createSession()

и что делает эта функция? не http://php.net/session_start? тогда самое время изменить её поведение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)