Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> OOP - problem z przekazywaniem zmiennych
trol2
post 1.06.2007, 13:26:57
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 13.05.2007

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


Mam nastepujacy problem. Napisalem taka klase (dla skrocenia kodu wyrzucilem pare funkcji, ale to nie istotne):

  1. <?php
  2. class user_manager
  3. {
  4.  
  5. public $login;
  6. public $pass1;
  7. public $pass2;
  8. public $email;
  9.  
  10. public function __get($nazwa)
  11. {
  12. return $this->$nazwa;
  13. }
  14.  
  15. public function __set($nazwa, $wartosc)
  16. {
  17. $this->$nazwa = $wartosc;
  18. }
  19.  
  20. public function __construct($login, $pass1, $pass2, $email)
  21. {
  22. require_once('funkcje/header.php');
  23.  
  24. $this->login = $login;
  25. $this->pass1 = $pass1;
  26. $this->pass2 = $pass2;
  27. $this->email = $email;
  28. }
  29.  
  30. public function Exist_data_1()
  31. {
  32.  
  33. if($this->login = '' or $this->pass1 = '' or $this->pass2 = '' or $this->email = '')
  34. {
  35. $_SESSION['blad_rej'] = 1;
  36. $_SESSION['login_r'] = "$this->login";
  37. $_SESSION['mail_r'] = "$this->email";
  38. my_header($do = 'zarejestruj.php', $czas = 0);
  39. }
  40.  
  41. }
  42.  
  43. public function Login_ok()
  44. {
  45. if(!ctype_alnum($this->login))
  46. {
  47. $_SESSION['blad_rej'] = 1;
  48. $_SESSION['login_r'] = "$this->login";
  49. $_SESSION['mail_r'] = "$this->email";
  50. my_header($do = 'zarejestruj.php', $czas = 0);
  51. }
  52. }
  53.  
  54. public function Haslo_ok()
  55. {
  56. if($this->pass1 != $this->pass2)
  57. {
  58. $_SESSION['blad_rej'] = 2;
  59. $_SESSION['login_r'] = "$this->login";
  60. $_SESSION['mail_r'] = "$this->email";
  61. my_header($do = 'zarejestruj.php', $czas = 0);
  62. }
  63. }
  64.  
  65. public function Zarejestruj()
  66. {
  67. $this->Exist_data_1();
  68. $this->Login_ok();
  69. $this->Haslo_ok();
  70. $this->Email_ok();
  71. $this->Zarejestruj_go();
  72. }
  73.  
  74. }
  75. ?>


wywoluje nastepujaca klase tak:

  1. <?php
  2. require_once('obiekty/user_manager.php');
  3. $usermng = new user_manager($login, $pass1, $pass2, $email);
  4.  
  5. $usermng->Zarejestruj();
  6. ?>


Jednak contruktor nie przypisuje zmiennym wartosci. Tak samo dzieje sie jezeli w kodzie dla kazdej zmiennej dam $usermng->login = $login; Dziala jedynie jak przekazuje niezbedne zmienne do kazdej funkcji, wtedy wywoluje bez $this-> . Co w tym kodzie jest nie tak ze nie przypisuje wartosci zmiennym clasy?
Go to the top of the page
+Quote Post

Posty w temacie


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: 19.07.2025 - 07:49