Me parece que no está muy bien tu método, aunque puedas pasar valores NULL estás obligado a pasar los parámetros en orden.
Tal como lo hiciste no era necesario el array, y en dado caso sería declarar todos los argumentos como opcionales y dentro hacer el
if-then-else que ahí tienes.
Yo me imaginaba algo así:
Código PHP:
Ver originalpublic function __construct
($conexion = array()) {
'host' => 'localhost',
'user' => 'miuser',
'pass' => 'mipass',
'db' => 'midb',
'port' => ini_get('mysqli.default_port'), );
$this->_mysqli = new mysqli($params['host'], $params['user'], $params['pass'], $params['db'], $params['port'])
or
die('Ocurrio un problema conectandose a la Bd.');
$this->_mysqli->set_charset('utf8');
self::$_instancia = $this;
}