Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Instancja klasy jej adres itp...
daves
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.10.2005

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


Witam.

Tak sobie piszę w php i zastanawia mnie taka rzecz: tworząc obiekt dowolnej klasy np.
  1. <?php
  2. $obj = new MojaKlasa();
  3. ?>

stworzyłem właśnie zmienną wskazującą na obiekt klasy w pamięci komputera( tak przynajmniej jest w językach typu c, c++, delphi itp).
Idąc tym rozumowaniem można by zwrócić adres na jaki wskazuje nasza zmienna $obj, a skoro tak to adres ten można bez problemów przerzucać między stronami i manipulować naszym obiektem do czasu jego usunięcia.
A jednak... nigdzie się nie spotkałem z tego typu rozwiązaniami.
I tak się zastanawiam czy oby na pewno jest to obiekt alokowany w pamięci komputera gdyż nie znalazłem metody na zwrócenie adresu obiektu a co za tym idzie z obiektu nie mogę korzystać na innej podstronie.

Jak to jest w php?

Pzdr.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
daves
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 29.10.2005

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


No dobrze... skoro jedynym wyjściem przerzuceniem obiektu na następną stronę jest wrzucenie go do sesji to dlaczego kod strony 1 daje wynik jak w patrz zaremowane:
  1. <?php
  2.  
  3. class Sesja
  4. {
  5. var $sID;
  6. var $sName;
  7. function Sesja($warunek = 'none'){
  8. if ($warunek != 'none'){
  9. $this->sID = session_id();
  10. $this->sName = $warunek;
  11. }
  12. }
  13. }
  14.  
  15. $_SESSION['obiekt'] = new Sesja('s');
  16. $objPusty = $_SESSION['obiekt'];
  17. $_SESSION['obiekt']->sName = 'zmiana nazwy';
  18.  
  19. print $_SESSION['obiekt']->sName."<br>"; // zwraca 'zmiana nazwy'
  20. print $objPusty->sName; // zwraca 's'
  21.  
  22. print_r($_SESSION);
  23. //zwraca 'Array ( [obiekt] => sesja Object ( [sID] => ffdd0972521c45820a6204ab0a3db63f [sName] => zmiana nazwy ))'
  24.  
  25. ?>


Natomiast po przejściu na stronę następną za pomocą linka lub butona formy zapis taki nie zdaje egzaminu:
  1. <?php
  2.  
  3. $obj = $_SESSION['obiekt'];
  4.  
  5. print $_SESSION['obiekt'] -> sName."<br>"; // nic nie zwraca
  6. print $obj -> sName; // nic nie zwraca
  7.  
  8. print_r($_SESSION);
  9. //zwraca 'Array ( [obiekt] => __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => sesja [sID] => ffdd0972521c45820a6204ab0a3db63f [sName] => zmiana nazwy ))'
  10.  
  11. ?>


Widać, że zmienne znajdują się w sesji ale jak się do nich dobrać?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 27.12.2025 - 06:52