prosty i wydawałoby się oczywisty przykład ale nie działa...
Kod
class C_osoba {
var $imie;
var $nazwisko;
function pokaz(){
echo $imie.' - '.$nazwisko;
}
}
class C_zamowienie {
var $zamowienie_uid;
var $przedmiot_id;
var $osoba= new C_osoba;
}
var $imie;
var $nazwisko;
function pokaz(){
echo $imie.' - '.$nazwisko;
}
}
class C_zamowienie {
var $zamowienie_uid;
var $przedmiot_id;
var $osoba= new C_osoba;
}
chcę tak zrobić by po deklaracji w kodzie:
Kod
$zamowienie=new C_zamowienie;
używać:
Kod
$zamowienie->przedmiot_id=666;
$zamowienie->osoba->imie="Nefretete";
$zamowienie->osoba->imie="Nefretete";
niestety otrzymuję komunikat:
Parse error: syntax error, unexpected T_NEW in H:\AppServ\www\klasa.php on line 16
gdzie linia 16 to linia z klasy C_zamowienie o teści:
Kod
var $osoba= new C_osoba;
Dlaczego nie mogę zadeklarować obiektu klasy C_osoba wewnątrz innej klasy jak zwykłej zmiennej ?
Jeżeli nie można to jak mogę to osiągnąć ? używam złej składni ?
Zaznaczam że nie chcę dziedziczyć klasy C_osoba w klasie C_zamowienie ponieważ potrzebuję jeszcze zadeklarować inne obiekty innych klas (np. C_przedmiot, C_reklamacje) a dziedziczenie wielokrotne w php nie działa.
Dlatego docelowo wyglądałoby tak: (ale nie działa jak w c++)
Kod
class C_zamowienie {
...
var $osoba= new C_osoba;
var $przedmiot= new C_przedmiot;
var $reklamacje= new C_reklamacje;
...
}
...
var $osoba= new C_osoba;
var $przedmiot= new C_przedmiot;
var $reklamacje= new C_reklamacje;
...
}
Proszę o pomoc.