Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ustawienia w __construkt czy bezpośrednio w klasie?
Apocalyptiq
post 23.10.2008, 13:28:13
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Z PHP pracuje już z rok, ale dopiero teraz zaczynam wtajemniczać się w klasy. Chciałem zapytać, do czego wykorzystuje się funkcję __construct - wiem, że jest wywoływana w momencie tworzenia egzemplarza obiektu, ale czym różni się wrzucenie jakichś początkowych zmiennych/działań bezpośrednio do klasy, a do tej funkcji __construct? Np. taki kod:
Kod
class foo{function __construct()
    {
    $this->text = 'Cześć, jestem klasa';
    }
}

a taki:
Kod
class foo{
var $text = 'Cześć, jestem klasa';
}
? Czy po prostu wrzuca się tam jakieś działania, których bezpośrednio w klasie nie można wykonać (np. echo)?


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
LBO
post 23.10.2008, 13:51:52
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Bardziej chodzi o to:
  1. <?php
  2. class foo{
  3. function __construct($text)
  4. {
  5.    protected $text;
  6.  
  7.    $this->text = $text;
  8. }
  9. }
  10.  
  11. $hello = 'Cześć, jestem klasa';
  12. $f = new foo($hello);
  13. ?>


Ten post edytował LBO 24.10.2008, 10:34:32
Go to the top of the page
+Quote Post
Apocalyptiq
post 23.10.2008, 13:58:56
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Czyli do tworzenia nowych obiektów między innymi?


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
doseo
post 23.10.2008, 14:43:34
Post #4





Grupa: Zarejestrowani
Postów: 28
Pomógł: 3
Dołączył: 23.01.2007
Skąd: Dys/Lublin

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


Konstruktor wykonuje zadania niezbędne dla dalszej pracy z obiektem. Pamiętaj także, że nie jest on metodą wykonywaną po stworzeniu obiektu ale współuczestniczy w tworzeniu obiektu.
Go to the top of the page
+Quote Post
mecenas
post 23.10.2008, 21:04:50
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 5
Dołączył: 23.09.2008
Skąd: Chełmno/Toruń

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


Cytat(Apocalyptiq @ 23.10.2008, 14:58:56 ) *
Czyli do tworzenia nowych obiektów między innymi?


Jak sama nazwa wskazuje - konstruktor służy do konstrukcji, czyli do tworzenia obiektu. Do innych celów tworzy się metody klasy.

Istnieją różne typy konstruktorów, ale nie jestem specem od php, więc nie bede ryzykował siania herezji winksmiley.jpg


--------------------
-- http://rafaljakubowski.net76.net --
google's my life ;)
Go to the top of the page
+Quote Post
Sedziwoj
post 24.10.2008, 10:05:11
Post #6





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


I przy okazji jak już używasz __construct() to nie:
  1. <?php
  2. class foo{
  3.    var $text = 'Cześć, jestem klasa';
  4. }
  5. ?>

a
  1. <?php
  2. class foo{
  3.    protected $text = 'Cześć, jestem klasa';
  4. }
  5. ?>


P.S. LBO dodaj właściwość do swojego przykładu, bo chyba ją zjadłeś. (wiem że działa, ale nie jest to coś czego powinno się uczyć)

Ten post edytował Sedziwoj 24.10.2008, 10:06:11


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
LBO
post 24.10.2008, 10:34:58
Post #7





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(Sedziwoj @ 24.10.2008, 11:05:11 ) *
LBO dodaj właściwość do swojego przykładu


tak jest - teraz będzie smigać biggrin.gif
Go to the top of the page
+Quote Post

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 - 20:39