Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: isset w OOP
Forum PHP.pl > Forum > PHP
Invrality
Witam. Mam metodę getsession, zwaraca ona $_SESSION['cos'];

jeśli dam return isset($_SESSION['cos']); nie działa

gdy użyję

if(isset($this->getsession())) też nie działa.

Jak mogę to inaczej zrobić, pomijając używanie od razu $_SESSION zamaist getsesion..

Mogę to zrobić tak:

public function __isset($name){
return isset($this->getSession[$name]);
}

i się odwoływać $this->_isset - ale co mi za różnica tak, czy $_SESSION. Chcę getSession.

=================

Wystarczyło dodać w funkcji:

if(isset($_SESSION[$name]))
{
return $_SESSION[$name];
}
wujek2009
tam masz isset($this->getSession[$name]) czyli zwróci Ci bool (true|false) a w return $_SESSION[$name]; zwróci Ci jakąś wartość (mixed) - więc może chodziło Ci o:
  1. public function __isset($name){
  2. return isset($this->getSession[$name]) : $this->getSession[$name] : FALSE;
  3. }


lub nawet rozszerzenie tej funkcji o parametr $default
  1. public function __isset($name, $default = NULL){
  2. return isset($this->getSession[$name]) : $this->getSession[$name] : $default;
  3. }
Crozin
Nie powinieneś korzystać z isset() bezpośrednio. Utwórz sobie metodę sprawdzającą istnienie danej zmiennej sesyjnej.:
  1. public function hasSession($name) {
  2. return isset($_SESSION['...']);
  3. }

PS. Powinieneś używać array_key_exists zamiast isset.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.