AFAIK ist nichts in diese Richtung geplant, warum auch?
Ja, das musst du auch nicht. Nach aussen hin kannst du eine API bauen, wie du sie aus JAVA kennst, aber intern ist das dann ziemlicher Murks, s.u.
Allerdings, aber du kannst die Argumenteliste auch ganz weglassen und dann innerhalb der Methode mit "func_num_args()" die Anzahl der Argumente, die übergeben wurden, zählen und mit "func_get_arg()" darauf zugreifen. Das ist ausreichend flexibel, aber wie gesagt etwas krampfhaft.
public function __construct() {
if(func_num_args() == 0) {
self::__construct_params(new HTTPClient_Params());
}
else if(func_num_args() == 1) {
$object = func_get_args(0);
if($object instanceof HTTPClient_Params) {
self::__construct_params($object);
}
else if($object instanceof HTTPClient_HttpConnectionManager) {
self::__construct_manager($object);
}
}
else {
self::__construct_params_manager(
func_get_args(0),
func_get_args(1)
);
}
}
[/PHP]
Ich glaube nicht, dass es noch kommt. Für PHP 5.1 ist es nicht vorgesehen und es würde mich auch wundern, da man es für dynamisch getypte Sprachen gar nicht braucht. Wie willst du in der Funktionssignatur zwischen int und string unterscheiden?
Weil das so implementiert wurde und es auch Sinn macht. Wenn du den Contructor überschreibst, dann willst du nicht zwangsläufig, dass der Parent-Constructor aufgerufen wird. Überschreibst du den Constructor nicht, dann wird der Parent-Constructor automatisch aufgerufen.