Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]protected z tablicy jak to ugryźć ?
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Panowie nie rozumiem do końca zasady protected.

  1. class JakasKlasa {
  2. protected $_session;
  3.  
  4. public function Logowanie() {
  5. $session = 'zmienna';
  6. $this->_session = $session;
  7. }
  8. }
  9.  
  10. try {
  11. $test = new JakasKlasa();
  12. $test->Logowanie();
  13. }


i jak wstawić w Logowanie tą $session ?

printowanie $test daje nam
  1. JakasKlasa Object
  2. (
  3. [_session:protected] => Array
  4. (
  5. [session-handle-part] => wartosc
  6. )
  7. )



w jaki sposób mam pobrać to co jest w session-handle-part ?

Ten post edytował casperii 22.06.2017, 21:38:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Cytat(casperii @ 22.06.2017, 22:37:54 ) *
Panowie nie rozumiem do końca zasady protected.

Protected określa zasięg widoczności do danej klasy i klas po niej dziedziczących.

  1. class A
  2. {
  3. protected $foo;
  4.  
  5. public function getFoo()
  6. {
  7. return $this->foo;
  8. }
  9. }
  10.  
  11. class B extends A
  12. {
  13. public function setFoo($foo)
  14. {
  15. $this->foo = $foo;
  16. }
  17. }
  18.  
  19. // Widoczność w klasie dziedziczącej
  20. $objB = new B();
  21. $objB->setFoo('bar');
  22. echo $objB->getFoo(); // bar
  23.  
  24. // Ale te dwa użycia już nie zadziałają
  25. // PHP Warning: Uncaught Error: Cannot access protected property B::$foo
  26. $objB->foo = 'bar';
  27.  
  28. $objA = new A();
  29. $objA->foo = 'bar';


Cytat(casperii @ 22.06.2017, 22:37:54 ) *
i jak wstawić w Logowanie tą $session ?


Przez przekazanie parametru (może być w konstruktorze, albo w samej funkcji Logowanie:
  1. class JakasKlasa
  2. {
  3. protected $_session;
  4.  
  5. public function Logowanie($session)
  6. {
  7. $this->_session = $session;
  8. }
  9. }
  10.  
  11. // Użycie
  12. $session = 'jakas-sesja';
  13. $test = new JakasKlasa();
  14. $test->Logowanie($session);


Cytat(casperii @ 22.06.2017, 22:37:54 ) *
w jaki sposób mam pobrać to co jest w session-handle-part ?


Ustawić setter tak jak napisał @viking
  1. class JakasKlasa
  2. {
  3. protected $_session;
  4.  
  5. public function Logowanie($session)
  6. {
  7. $this->_session = $session;
  8. }
  9.  
  10. public function getSession()
  11. {
  12. return $this->_session;
  13. }
  14. }
  15.  
  16. // Użycie
  17. $session = 'jakas-sesja';
  18. $test = new JakasKlasa();
  19. $test->Logowanie($session);
  20. // Pobranie sesji
  21. $pobrana_sesja = $test->getSession();
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: 8.10.2025 - 05:44