Respuesta rapida: No se puede
Respuesta lenta y complicada :
Debes de crearte un constructor vacio y luego controlar las variables que le pasas por medio de las funciones func_num_args() y func_get_args($id_argumento).
Yo lo que hago es esto :
Código PHP:
class comentario{
private $nombre;
private $puntuacion;
/**
*Constructor
*
*@param string nombre
*@param string nombre, int puntuacion
*@return comentario
*/
function comentario()
{
if(func_num_args()>0)
{
$this->nombre = func_get_arg(0);
}
if(func_num_args()>1)
{
$this->puntuacion = intval(func_get_arg(1));
}
}
}
Con eso consigues tener constructor vacio, constructor con 1 argumento y con 2 argumentos. Ahora bien, si quieres hacer constructores de un solo argumento con distintos tipos ya es ir haciendo comprovaciones de si el argumento pasado es en la posicion x es de tal tipo o tal otro.
Tambien he leido algo de un metodo llamado __call, pero en resumidas cuentas viene a ser lo mismo pero de otra forma.
Espero que te sirva.