![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 9 Dołączył: 29.05.2009 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Witam,
nie umiem ogarnąć konstruktora kiedy go używamy i po co? Może ktoś mi wytłumaczy? W poniższym przykładzie mamy klasę dog w której mamy publiczny dostęp do atrybutu $name oraz konstruktora. Z tego co rozumiem konstruktor jest to metoda która w chwili powstania obiektu nadaje mu jakiś właściwości? Ale po co i kiedy tego mam używać? klasa Kod <?php class Dog{ public $name;//atrybut przechowujący imię psa /*konstruktor*/ public function __construct($name){ $this->name = $name; } public function roar(){ echo 'chał chał'; } //ciach } ?> obiekt Kod <?php
require('class.dog.php'); $reksio = new Dog('Reksio'); echo $reksio->name; //atrybut "name" publiczny, więc wyświetlone zostanie 'Reksio' $reksio->roar(); //metoda roar() publiczna, więc wyświetlone zostanie 'chał chał' ?> |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@thek: Uczepiłeś się jednego konkretnego przypadku użycia... (IMG:style_emoticons/default/wink.gif) Dla przypomnienia podstawa naszej dyskusji:
Żeby ukrucić bezsensowną dyskusję o argumentach konstuktora i domniemanym dodadkowym kodzie (notabene w praktyce by go nie było) obie właściwości służą wyłącznie jakiemuś bliżej nieokreślonemu użytkowi obiektu. Uznałeś, że pierwszy przykład - faworyzowany przeze mnie - narusza jakieś paradygmaty obiektówi, że jest nienaturalny. Nie będę bronić pierwszego przykładu, ani atakować drugiego. Chciałbym tylko dowiedzieć się co konkretnie może wynikać z różnic w tych zapisach. Jakie paradygmaty mogą tutaj, w tym konkretnym przypadku (jeżeli będziesz omawiać inny proszę dołącz kod). Bo póki co to mamy ładnych kilka ścian tekstu, w których co prawda jest nieco racji, ale opeirają się one na innych przypadkach użycia, co sprawia że są za przeproszeniem gówno warte. (IMG:style_emoticons/default/wink.gif) ----------------------------------------- @darko: Obiekt odpowiedzialny za komunikację baza danych <-> PHP w żadnym wypadku nie powinien być singletonem, bo raz że wcale nie musi być jednego połączenia, dwa że tworzy to niebezpieczeństwo w postaci gobalnego obiektu - a przestrzeń globalna to przestrzeń zła. W ogóle to w aplikacjach WWW działających tak jak działa PHP nie ma zbyt wiele miejsca dla singletona. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 14:56 |