Hej, Ronaldo!
"Ronaldo" <freddie@brnet.dk> skrev i en meddelelse
news:44ddfe30$0$15790$14726298@news.sunsite.dk...
> Jeg har lavet en mysql klasse, som jeg gerne vil extende til en håndfuld
> andre child klasser, som hver især kun er afhængig af mysql klassen og
> ikke hinanden.
>
> Jeg er løbet ind i det problem med at min mysql constructor har nogle
> argumenter, som php brokker sig over når jeg laver en ny instans af en
> child klasse. Den siger at jeg ikke leverer nogle argumenter til mysql
> klassen.
>
> Jeg gør det at jeg først skaber en instans af mysql klassen, og så en ny
> af child klassen, men alligevel vil den have argumenter fra child klassen.
Det er kun nødvendigt at lave en instans af child-klassen. mysql-klassen
bliver automatisk en del af alle de klasser, der udvider den. Konstruktøren
i din child-klasse skal så have overført argumenterne til både sin egen
klasse og den klasse, den udvider. Kald så konstruktøren i den udvidede
klasse fra konstruktøren i child-klassen. Det er en god ide at gøre dette
som det allerførste, da den nedarvede del af klassen så allerede er
initialiseret, inden du begynder at initialisere udvidelsen.
> $mysql = new mysql("localhost", "root", "123456");
> $child = new child();
>
> Problemet er at jeg gerne vil kunne lave en constructor med tilhørende
> argumenter i en child klasse. Det kan ikke lade sig gøre hvis jeg skal
> føde en child instans med argumenter til mysql klassen.
Nu skriver du desværre ikke hvilken version af PHP, du anvender, så det er
svært at give noget konkret svar på, hvordan du rent faktisk skal gøre, da
objektmodellen er ændret betydeligt fra version 4 til version 5. Ikke mindst
hvad angår klassernes konstruktører.
Her er nogle nyttige links til PHP 4's objektmodel:
http://www.php.net/manual/en/language.oop.constructor.php
http://www.php.net/manual/en/keyword.paamayim-nekudotayim.php
http://www.php.net/manual/en/keyword.parent.php
og til PHP 5:
http://www.php.net/manual/en/language.oop5.basic.php
http://www.php.net/manual/en/language.oop5.decon.php
http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php
Mvh
C@rsten