Poleganie na fakcie, że PHP użyje ostatniego otwartego zasobu połączenia, jeśli go nie określisz, prawdopodobnie nie jest zbyt dobrym pomysłem.
Co się stanie, jeśli Twoja aplikacja się zmieni i będziesz potrzebować dwóch połączeń lub połączenie nie jest tam?
Wygląda więc na to, że i tak musisz przeprowadzić refaktoryzację.
Oto rozwiązanie podobne do rozwiązania Karstena, które zawsze zwraca ten sam obiekt mysqli.
class DB {
private static $mysqli;
private function __construct(){} //no instantiation
static function cxn() {
if( !self::$mysqli ) {
self::$mysqli = new mysqli(...);
}
return self::$mysqli;
}
}
//use
DB::cxn()->prepare(....