Às vezes, quando você estende uma classe que não é sua, em um framework da web, por exemplo, você precisa ter um construtor para sua própria classe. Você não quer apenas colocar um construtor lá, porque se a classe pai tiver um construtor, ele será substituído. Você poderia chamar parent::__construct()
com os argumentos corretos, mas em uma versão mais recente da classe pai, a assinatura do construtor pode mudar e você a teria quebrado.
Python tem *args
e **kwargs
para isso, mas em PHP o mais próximo que encontrei é este:
call_user_func_array(array('parent', '__construct'), func_get_args());