login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Constructor overloading

Offline foxie - 16/02/2007 23:07
Avatar van foxieNieuw lid Ik wou net in php5 eens een klasse schrijven met een constructor die ik wilde overloadde, en dit gaat niet..

Mag ik na een half uur googlen besluiten dat php dit gewoon niet ondersteund, of toch niet op een deftige manier (gewoon verschil in argumenten).. .

Een oplossing die ik gevonden heb was met __call werken, maar dit lijkt me heel omslachtig, in php4 is er een methode overload() , maar die begrijp ik niet helemaal.

Waarom wordt dit door php niet ondersteund - Nu komt php bij mij over als een taal die wel iets heel basics niet kan -, en hoe kan ik alsnog mijn constructor overloaden, want dat is wat ik dus wil ..

3 antwoorden

Gesponsorde links
Offline nemesiskoen - 16/02/2007 23:22
Avatar van nemesiskoen Gouden medaille

PHP expert
PHP doet dit als volgt:
  1. <?php
  2. class A {
  3. public function __construct($a, $b = 'standard', $c = 'something') {
  4. // ...
  5. }
  6. }


Iets wat JAVA dus niet kent.
Volgens de JAVA manier in PHP zou het dan zo zijn:
  1. <?php
  2. class A {
  3. public function __construct($a, $b, $c) {
  4. // ...
  5. }
  6. public function __construct($a, $b) {
  7. $this->__construct($a, $b, 'something');
  8. }
  9. public function __construct($a) {
  10. $this->__construct($a, 'standard', 'something');
  11. }
  12. }


Je kan ook de standaard waarde NULL meegegeven, waardoor je in de constructor kan kijken welke actie gewenst is.
Offline foxie - 16/02/2007 23:30
Avatar van foxie Nieuw lid ja dus je moet in je constructor nog met een extra if (of switch) gaan werken 

dan is de java / vb/c /... manier toch wel een pak handiger !
Offline Gerard - 16/02/2007 23:32
Avatar van Gerard Ouwe rakker Ieder zijn ding, ik vind de manier van PHP handiger omdat ik dan niet meerdere malen dezelfde functie moet gaan maken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.176s