• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obiektowy PHP - właściwości i konstruktor

Object Storage Arubacloud
0 głosów
423 wizyt
pytanie zadane 18 listopada 2017 w PHP przez michh123 Bywalec (2,790 p.)

Witam!

Mam dwa pytania odnośnie obiektowego PHP.

1. Czy w obiektowym PHP w klasach muszą się znajdować same właściwości, czy można też czasem zastosować(w jakiejś metodzie) zwykłe zmienne? Np.

protected function getAllUsers() {
    $sql = 'SELECT * FROM users';
    $this->result = $this->connect()->query($sql);
    //...
}

Czy ta zmienna "$sql" według standardu PHP może być zmienną w tej metodzie, czy zamienić ją na właściwość? 

2. Jak poprawnie inicjalizować właściwości w klasach, które nie mogą mieć konstruktora(bo np. te klasy są tylko klasami bazowymi dla innych klas pochodnych i nie tworzę ich instancji)?

  • Przypisać wartość tym właściwościom w klasie? Np.
class Connect {
    private $host = 'localhost';
    private $dbName = 'baza1';
    private $username = 'root';
    private $password = '';
    //...
}
  • Czy może zrobić to dopiero w metodzie? Np.  
class Connect{
    private $host;
    private $dbName;
    private $username;
    private $password;
    private $pdo;
    
    protected function connecting() {
        $this->host = 'localhost';
        $this->dbName = 'baza1';
        $this->username = 'root';
        $this->password = '';
        //...
    }
}
  • Czy w jakiś inny sposób, o którym nie mam pojęcia? 

Bardzo proszę o pomoc.
 

 

1 odpowiedź

+3 głosów
odpowiedź 19 listopada 2017 przez Assasz Nałogowiec (30,460 p.)
wybrane 19 listopada 2017 przez michh123
 
Najlepsza
1. Oczywiście, że możesz stosować zwykłe zmienne w swoich metodach. Własności klasa wcale mieć nie musi, stosuje się je po prostu kiedy są potrzebne jakieś zmienne "globalne" dla naszej klasy. W swoich metodach możesz korzystać i z takich, i takich zmiennych, z tym, że do własności się odwołujesz poprzez this (lub parent jeśli dziedziczysz).

2. Jak wyżej, kiedy potrzebujesz jakichś zmiennych dostępnych globalnie w swojej klasie - bo np. kilka metod z nich korzysta - stosujesz własności. Możesz przypisać im wartości od razu, lecz tak się raczej nie robi (aczkolwiek PSR tego nie zakazuje). Nie ma w tym przypadku większego znaczenia, czy klasa wykorzystuje konstruktor, czy też nie. Oczywiście, dzięki konstruktorom funkcjonalność tych własności nieco rośnie.
komentarz 19 listopada 2017 przez michh123 Bywalec (2,790 p.)
1. Super wyjaśnione, dziękuję! :)
2. Czyli jak nie mam możliwości zrobić konstruktora, bo nie będę tworzył na jej podstawie obiektu, tylko ma służyć jako klasa bazowa, to mogę przypisywać właściwościom wartości i to nie jest błąd według PSR, tak?
1
komentarz 19 listopada 2017 przez Assasz Nałogowiec (30,460 p.)
Tak, nie jest to błędem.
komentarz 19 listopada 2017 przez michh123 Bywalec (2,790 p.)
Dziękuję za pomoc! :)

Podobne pytania

0 głosów
1 odpowiedź 351 wizyt
pytanie zadane 17 czerwca 2017 w Java przez SzukającyPrzygód Bywalec (2,310 p.)
0 głosów
1 odpowiedź 374 wizyt
pytanie zadane 9 sierpnia 2015 w Offtop przez MrZenek Nowicjusz (120 p.)
+1 głos
3 odpowiedzi 475 wizyt
pytanie zadane 15 czerwca 2015 w HTML i CSS przez WicherTKD Początkujący (410 p.)

92,565 zapytań

141,417 odpowiedzi

319,601 komentarzy

61,950 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...