Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sesja i tablice wielowymiarowe - odczyt
Neeke
post 20.05.2010, 17:33:42
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 16
Dołączył: 22.02.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witajcie,

od paru dni siedzę nad klasą usprawniającą moją prace z sesjami lecz napotkałem pewnego rodzaju problem i nie mogę w żaden sposób przeskoczyć go.

Pokażę części kodu i na dole dam pytanie.

Klasa Session
  1. class Session {
  2.  
  3.  
  4. ......
  5. public function read($name) {
  6. if (! is_array ( $name )) {
  7. return $_SESSION [$name];
  8. } else {
  9.  
  10. global $tmp;
  11.  
  12. $tmp = '_SESSION';
  13. $tmpp = '';
  14. foreach ( $name as $key => $value ) {
  15. $tmpp .= "['" . $value . "']";
  16. }
  17.  
  18.  
  19. $tmp .= $tmp.$tmpp;
  20.  
  21.  
  22. return $$tmp;
  23. }
  24.  
  25. ....
  26. }



  1. // zapis do niej wykonuję tak
  2. $session->save ( array ('Neeke' => array ('A' => 'a', 'B'=>'b' ) ));
  3. // odczyt tej samej sesji
  4.  
  5. echo $session->read ( array('Neeke','A') );


Pytanie,
Jak powinienem skonstruować odczytanie by mi wyświetliło wartość przechowywaną w sesji w tym przypadku ręcznie można wyciągnąć to w ten sposób
  1. echo $_SESSION['Neeke']['A'];

a jak to zrobić poprzez klasę?
Go to the top of the page
+Quote Post
Pilsener
post 20.05.2010, 18:20:17
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


  1. global $tmp;
  2. return $$tmp;
- a cóż to? :/

Poczytaj o metodach dostępowych, metoda powinna być elastyczna:
  1. $sesje->getInfo()->Niki; //zwróci tablicę/wartość dla "Niki"
  2. $sesje->getInfo(); //zwróci całą tablicę
  3. // i tak dalej


Przyjęło się, że odczyt odbywa się przez metody get*, a ustawienie jakiś pól klasy przez set*. Radzę też zobaczyć, jak robią to popularne frameworki (Zend, Symfony):
http://framework.zend.com/manual/en/zend.auth.html
Go to the top of the page
+Quote Post
Neeke
post 20.05.2010, 18:25:43
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 16
Dołączył: 22.02.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź.


Cytat(Pilsener @ 20.05.2010, 19:20:17 ) *
  1. global $tmp;
  2. return $$tmp;
- a cóż to? :/


To jest część moich prób by wartość zmiennej stała się zmienną zmienną teraz dokładniej przejrzałem manuala i dostrzegłem że w Super globalnych nie działa to.

Jeszcze raz dziękuje za naprowadzenie na jakąś ścieżkę rozwiązującą mój problem
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:11