You handle constructs correct.
Very long lists of arguments are good in strongly typed languages such as C++, but are not very convenient and safe for PHP. My advice is to use associative arrays.
function __construct(&$args)
{
parent::__construct($args);
$this->contactphone = $this->get($args, 'contactphone'); // check if $args['contactphone'] is specified, otherwise return null
$this->firmname = $this->get($args, 'firmname');
// ...
}
Usage:
$args = array(
'username' => $username,
'password' => $password,
'confirmpassword' => $confirmpassword
);
$e = new EmployerRegister($args);
Your benefits:
You do not need to remember exact order of arguments. Create array of args in any order. Less bugs. Less typing.
Some arguments may be empty, so no need to send them. Better performance.