Martin Møller Bæk wrote:
> Kan det passe, at man i PHP4 kun kan bruge en constructor
Ja, det er fuldstændig korrekt. PHP4 understøtter ikke name overloading.
> i hver klasse. Jeg har lavet to; en uden argumenter og en med
> et argument, men det er kun det "nederste", der virker.
Ja, den nederste virker formentlig fordi den er erklæret sidst.
Hvis det er et spørgsmål om at din contructor kan tage 2 eller ingen
argumenter kan du selv kode name overloadingen:
class NameOverload {
   function NameOverload() {
     $argc = func_num_args();
     $argv = func_get_args();
     if( $argc==0 ) {
       $this->NameOverloadNoArgs();
     } else
     if ( $argc==2 ) {
       $this->NameOverloadTwoArgs($argv[0], $argv[1]);
     } else {
       trigger_error('NameOverload: Invalid constructor', E_USER_ERROR);
     }
   }
   function NameOverloadNoArgs() {
     // Do what ever
   }
   function NameOverloadTwoArgs($arg0, $arg1) {
     // Do what ever with two arguments;
   }
}
Du burde godt kunne gennemskue hvordan den kan udvides. Problemer kommer 
først, når man har 2 constructorer med 2 argumenter, men hvor argumenter 
ne ikke er af samme type. PHP er jo dynamisk typet så det bliver lidt 
mere besværlig, men man kan da lave noget med is_*() funktionerne, der 
vil virke i de fleste tilfælde.
MVH Per Thomsen,
http://www.pert.dk/