TheClown Skrevet 10. juli 2012 Skrevet 10. juli 2012 (endret) Hei. Jeg er relativt ny til OOP-delen av PHP, men jeg følger meg relativt stabil i resten. Er det noen av dere som kan forklare meg hvordan jeg inkluderer en klasse i en annen? Jeg bruker et bibliotek som heter xpdo til å gjøre alle spørringene mine. Jeg bruker xpdo på f.eks denne måten: $c = $xpdo-&--#62;newQuery('modResource'); Hvordan kan jeg gjøre slik at jeg inne i klassene mine kan gjøre f.eks: $c = $this-&--#62;newQuery('modResource'); Eller er ikke dette mulig? Evt. kan jeg skrive: $c = $this-&--#62;xpdo-&--#62;newQuery('modResource'); ... om den første løsningen ikke lar seg gjøre. Endret 19. juli 2012 av TheClown
Thomas. Skrevet 10. juli 2012 Skrevet 10. juli 2012 (endret) Har du sett på extends og parent? http://php.net/manua...word.parent.php Et eksempel: <?php class xpdo { public function method() { echo 'funksjon i xpdo'; } } class minKlasse extends xpdo { /** når vi kaller minKlasse **/ public function __construct() { parent::method(); } } // Echoer 'funksjon i xpdo' new minKlasse(); Eventuelt hadde metoden i xpdo vært statisk kan du kalle den direkte uten noe mer: <?php class xpdo { static function method() { echo 'funksjon i xpdo'; } } class minKlasse { /** når vi kaller minKlasse **/ public function __construct() { xpdo::method(); } } // Echoer 'funksjon i xpdo' new minKlasse(); Endret 10. juli 2012 av Thomas.
Sono Juventino Skrevet 11. juli 2012 Skrevet 11. juli 2012 Du må inkludere klassefil og ha et objekt å kjøre metoden på/kalle den statisk. Det er vanskelig å hjelpe deg uten å vite hva metoden din gjør eller om du har noe objekt.
Alex Moran Skrevet 12. juli 2012 Skrevet 12. juli 2012 Det er vel den siste metoden din som er den beste løsningen: <?php class BookCollection { protected $xpdo; public function setXpdo(Xpdo $xpdo) { $this->xpdo = $xpdo; } public function findAll() { $this->xpdo->newQuery("some statement"); } } Dersom du ønsker å kunne kalle $this->newQuery() må du extende Xpdo.
TheClown Skrevet 19. juli 2012 Forfatter Skrevet 19. juli 2012 Løste det på samme måte som deg Alex. Hadde vært "penest" å kunne skrive $this->newQuery, men det er ikke noe problem å skrive $this->xpdo->newQuery heller. Takk så mye for hjelpa, da har jeg lært meg litt mer grunnleggende OOP. Løst.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå