Tweeter button
Facebook button

Multiple Constructors (Overloading) in PHP

It is a huge frustration to me that PHP does not support constructor overloading in the same way that other OOP (Object Orientated Programming) languages do.  There is a workaround, however:

class MultipleConstructor {

private $info = ”;

function __construct() {
$argv = func_get_args();

switch( func_num_args() ) {
default:
case 1:
self::__construct1($argv[0]);
break;
case 2:
self::__construct2( $argv[0], $argv[1] );
break;
}
}

function __construct1($value) {
$this->info = $value;
}

function __construct2($value, $value2) {
$this->info = $value . ” ” . $value2;
}

function get() {
return $this->info;

}
}

$a = new MultipleConstructor(‘Value 1?);
echo $a->get();

$b = new MultipleConstructor(‘Value 1?, ‘Value 2?);
echo $b->get();

2 comments to Multiple Constructors (Overloading) in PHP

You must be logged in to post a comment.