В документации CodeIgniter 3.0.3 указано, что данные сеанса можно получить несколькими различными способами, включая $_SESSION['item'] и $this->session->item. Это так. Независимо от того, как я устанавливаю переменную сеанса, я вижу, что могу вывести значение в обоих направлениях.
Теперь, когда эта переменная сеанса заполнена, я могу проверить пустое условие, например: if(empty($_SESSION['item'])), и оно оценивается как bool(false), как я и ожидал. Однако, если я проверяю ту же переменную сеанса следующим образом: if(empty($this->session->item)) она оценивается как bool(true), чего я НЕ ожидаю (поскольку я могу повторить ее значение в следующей строке). Почему эти два разных способа проверки пустого состояния оцениваются по-разному?