PHP expert |
|
Lees eens een aantal artikels over OOP. Denk na over je ontwerp en begin niet zomaar iets te programmeren. Voor er iets ontwikkelt wordt van classes, wordt er veel gedacht. Bijvoorbeeld de methode sendMessage() staat in de verkeerde class. De methode send() zou beter passen in het concept Message.
Beginners gebruiken te vaak extends om methodes van andere classes te gebruiken, terwijl de ene class niets met de andere te maken heeft.
class Kip extends Vogel{}
class Kip extends Vogel{}
class Kip extends Paard{}
class Kip extends Paard{}
Als een methode in een class een methode van een andere class nodig heeft kan je die andere class instantie meegeven met de methode. Ingewikkeld? Niet helemaal hoor.
class A {
....
public function doe( B $b ) {....} //B $b is typehinting.
}
class B {}
$a = new A();
$b = new B();
$a->doe($b);
class A { .... public function doe( B $b ) {....} //B $b is typehinting. } class B {} $a = new A(); $b = new B(); $a->doe($b);
Dus als je class Communication een bericht moet versturen van de ene wereld naar de andere kan dat bijvoorbeeld als volgt.
class Communication
{
...
public function sendMessage( World $van , World $naar )
{
$this->_send( $van->id , $naar->id );
}
}
$aarde = new World(1);
$mars = new World(3);
$com = new Communication();
$com->sendMessage($aarde , $mars);
class Communication { ... public function sendMessage( World $van , World $naar ) { $this->_send( $van->id , $naar->id ); } } $aarde = new World(1); $mars = new World(3); $com = new Communication(); $com->sendMessage($aarde , $mars);
Nog een kleine opmerking! De namen van classes beginnen met een hoofdletter en de namen van methodes beginnen met een kleine letter. |