PHP purtroppo non supporta nativamente i costruttori multipli nelle sue classi.
Prima possibilità utilizzo di func_num_args()
, func_get_args()
e func_get_arg()

Come si vede ho istanziato la classe Barca sia richiamandola senza alcun valore che con in valore.
Seconda possibilità

Da notare che all’interno dei metodi statici viene impostato un attributo privato del costruttore, una cosa che non sarebbe possibile normalmente
Ecco come istanzio al classe in questo caso:
