Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Inicjalizacja obiektu w klasie - problem
Forum PHP.pl > Forum > Przedszkole
loop-digga
Witam,

To mój pierwszy post na tym forum. Dotychczas czytałem, ale tym razem nie umiem odnaleźć wyjaśnienia mojego problemu.
Wykonywałem sobie jakiś testowy kod OOPHP, żeby odświeżyć sobie temat i trafiłem na taki problem już na początku.

Stworzyłem sobie dwie puste klasy A i B. W B chciałem zainicjować obiekt klasy A i napotkałem błąd:
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in ...

Kod wyglądał po paru próbach zmian tak:
  1. class A {
  2. }
  3. class B{
  4. public $var;
  5. $this->var = new A();
  6. }
  7.  


Rozwiązanie znalazłem tutaj. I po tej zmianie jest ok.
  1. class B{
  2. public $var;
  3. function __construct()
  4. {
  5. $this->var = new A();
  6. }
  7. }
  8.  

 
Jednak nie umiem pojąć dlaczego tworzenie obiektu musi być w konstruktorze. Mógłby ktoś to wyjaśnić? Angielski jest u mnie o, ale tego wyjaśnienia z wklejonej dyskusji nie rozumiem.
Zacząłem obiektowe PHP od Zenda i takie podstawy gdzieś mi pouciekały winksmiley.jpg
ayeo
Witam!

A wiesz jak zbudowana jest klasa? Najpierw deklarujesz wartości i ich rodzaj, a potem metody klasy. Operacja przypisania (obiektu do wartości) mu znaleźć się w ciele jakiejś metody. W Twoim wypadku konstruktora (żeby wywołała się automatycznie przy tworzeniu obiektu). Nie możesz wykonywać, żadnych operacji poza ciałem metody (przynajmniej w PHP).

Temat przenoszę na Przedszkole

Pozdrawiam!
loop-digga
wstydnis.gif no wstyd, dzięki. Heh, pytałem dwóch kumpli przed postem, pracujących w obiektowych językach i żaden z nas nie wpadł na taką oczywistą oczywistość winksmiley.jpg (z tego co mówi jeden w javie nie ma takiego wymogu).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.