Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][oop] Zmienne w klasie. Czym się różnią?
luis2luis
post
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 25.11.2015

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


Witam.

Uczę się dopiero programowania obiektowego. Już sobie radze, ale czasami trafiam na niejasne elementy.
Analizuje pewną gotową klase i mam taki kawałek kodu:


  1.  
  2. <?
  3. class AuthDataV1
  4. {
  5.  
  6. public $login = 'test';
  7. public $masterFid = 'test';
  8. public $password = 'test';
  9.  
  10. function __construct($cfg) {
  11.  
  12. $this->login = $cfg['dostawa_dpd_fid'];
  13. $this->masterFid = $cfg['dostawa_dpd_login'];
  14. $this->password = $cfg['dostawa_dpd_pass'];
  15.  
  16. }
  17. };
  18.  
  19. $authData = new AuthDataV1($cfg);
  20.  
  21. ....
  22.  
  23. ?>
  24.  


Na początku są podane zmienne public .. następnie w metodzie Construct znowu mamy je zdefiniowane. Te pierwsze to zmienne testowe, jak nie podam swoich docelowych poprzez $cfg wtedy zmienne testowe są tylko brane pod uwagę?
Troche niejasne jest to dla mnie. Mam ciągle problem ze sposobami definiowania zmiennych w klasach.


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





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Akurat ten przykład jest bardzo słaby, choćby dlatego że jak którykolwiek z kluczy tablicy będzie pusty to poleci ostrzeżenie. Nie ma typowania więc $cfg może równie dobrze być stringiem.

  1. <?php
  2. class AuthDataV1
  3. {
  4.  
  5. public $login;
  6. public $masterFid;
  7. public $password;
  8.  
  9. public function __construct(array $cfg)
  10. {
  11. $this->login = $cfg['dostawa_dpd_fid'] ?? 'test';
  12. $this->masterFid = $cfg['dostawa_dpd_login'] ?? 'test';
  13. $this->password = $cfg['dostawa_dpd_pass'] ?? 'test';
  14.  
  15. }
  16. }
  17.  
  18. $cfg['dostawa_dpd_fid'] = 1;
  19. $authData = new AuthDataV1($cfg);
  20.  
  21. echo $authData->login;
  22. echo $authData->password;


Ten post edytował viking 11.07.2019, 09:11:20
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: 14.10.2025 - 13:24