login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Constructor overloading

Offline cunces - 27/09/2010 14:43
Avatar van cuncesNieuw lid Hoe kan je dit toepassen?

Ik maak nu gebruik van 1 constructor die een blanko object aanmaakt en dan gebruik ik methodes om het te initialiseren. Dit gaat, maar is toch niet ideaal.

Ook dit heb ik al geprobeerd, maar werkt alleen als je function__call public maakt en dat doe ik niet.

Iemand goed linkje? Of uitleg ?;)

2 antwoorden

Gesponsorde links
Offline marten - 27/09/2010 15:23
Avatar van marten Beheerder Heb je een stukje code?
Offline cunces - 27/09/2010 15:43
Avatar van cunces Nieuw lid owja, hetgeen ik al geprobeerd heb maar dus eig niet voldoet:
  1. class Hoge {
  2.  
  3. public function __construct(){
  4. $num = func_num_args();
  5. $args = func_get_args();
  6. switch($num){
  7. case 0:
  8. $this->__call('__construct0', null);
  9. break;
  10. case 1:
  11. $this->__call('__construct1', $args);
  12. break;
  13. case 2:
  14. $this->__call('__construct2', $args);
  15. break;
  16. case 3:
  17. $this->__call('__construct3', $args);
  18. break;
  19. default:
  20. throw new Exception();
  21. }
  22. }
  23.  
  24. public function __construct0(){
  25. echo "constructor 0" . PHP_EOL;
  26. }
  27.  
  28. public function __construct1($a){
  29. echo "constructor 1: " . $a . PHP_EOL;
  30. }
  31.  
  32. public function __construct2($a, array $hoge){
  33. echo "constructor 2: " . $a . PHP_EOL;
  34. var_dump($hoge);
  35. }
  36.  
  37. public function __construct3(A $a, A $b, C $c){
  38. echo "constructor 3: " . PHP_EOL;
  39. var_dump($a, $b, $c);
  40. }
  41.  
  42. private function __call($name, $arg){
  43. return call_user_func_array(array($this, $name), $arg);
  44. }
  45. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s