Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Referencja do $_SESSION, Czy poprawnie zadziała przypisanie?
pauluZ
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 9.02.2004
Skąd: Toruń

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


  1. <?php
  2. $t = array('idx'=>12);
  3. $_SESSION['moja_tablica'] = $t;
  4. ?>

Jeśli przypisze przez referencje zmienną sesyjną do innej:
  1. <?php
  2. $s =& $_SESSION['moja_tablica'];
  3. ?>

(aby skrócić sobie zapis w kodzie do tej tablicy)
to czy zmiana zmiennej $s['idx']
powoduje prawidłowe wpisywanie wartości do sesji
i pamiętanie jej między przeładowaniami?

Czy mogą wystąpić jeszcze jakieś komplikacje przy takiej referencji?

$_SESSION to zmienna superglobalna


--------------------
pauluZ
Go to the top of the page
+Quote Post
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(pauluZ @ 2005-04-22 10:48:16)
i pamiętanie jej między przeładowaniami?

Nie jestem pewien, ale chyba zmienna $s nie będzie pamiętana między przeładowaniami. Od pamiętania masz zmienne sesyjne.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
SongoQ
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@kszychu No to sie pomyliles zmienne sesyjne tak samo sa traktowane jak zwykle zmienne, a dane do sesji sa zapisywane podczas konczenia skryptu.

Przyklad.

Odpalasz

  1. <?php
  2. $a =& $_SESSION['a'];
  3. $a = '444';
  4. echo $_SESSION['a'];
  5. ?>


  1. <?php
  2. #$a =& $_SESSION['a'];
  3. #$a = '444';
  4. echo $_SESSION['a'];
  5. ?>


wyswietli 444 chociaz nigdzie nie ustawialem zmiennej sesyjnej.


--------------------
Go to the top of the page
+Quote Post
kszychu
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


@SongoQ: dziękuję za, jakże pouczający, wykład. Gdybyś jednak czytał dokładniej moją wypowiedź, zrozumiałbyś, że z tym pamiętaniem to nie chodziło mi o samą $_SESSION a o zmienną $s, która to przechowywała by referencję do $_SESSION.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
SongoQ
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@kszychu Po przeczytaniu Twojego postu naprawde pomyslalem ze nie da sie tak, ale pozniej po zastanowieniu sie i sprawdzeniu, chodzilo mi o to zeby w blad @pauluZ nie wprowadzic.


--------------------
Go to the top of the page
+Quote Post
kszychu
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(kszychu @ 2005-04-22 10:59:57)
Nie jestem pewien, ale chyba zmienna $s nie będzie pamiętana między przeładowaniami.

Kurna, czy ja wyrażam się mało precyzyjnie?..


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
to czy zmiana zmiennej $s['idx']
powoduje prawidłowe wpisywanie wartości do sesji
i pamiętanie jej między przeładowaniami?

$s jest referencja do $_SESSION[ 'moja_tablica' ] czyli jesli zmienisz $s to zmienisz tez zawartosc 'mojej_tablicy', i po przeladowaniu bedziesz sie mogl odwolac do tej WARTOSCI przez $_SESSION[ 'moja_tablica' ] -- tylko to zostanie zachowanie w sesji ($s nie bedzie istnialo).


--------------------
Nie lubię jednorożców.
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 Aktualny czas: 21.08.2025 - 17:13