Objetos o Estructurado, esa pregunta esta ligada a tu "costumbre" para programar, si estas acostumbrado a trabajar por estructura en "comun" y no OP, programar por progresión, te ahorrara varios dolores de cabeza, sin embargo usar el modo "objetivo" te ayuda a crear programas mas grandes y mantener un mejor orden ( los objetos no requieren de identificadores "link, de conexión" )
 
si miras la sintaxis que se muestra como ejemplo en php, puedes notar la diferencia 
OP 
 Código PHP:
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
 
$query = "SELECT * FROM xx LIMIT 0, 10";
 
if ($result = $mysqli->query($query))
{
    /* obtener array asociativo */
    while ($row = $result->fetch_assoc())
    {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }
 
    /* liberar el resultset */
    $result->free();
}
 
/* cerrar la conexión */
$mysqli->close(); 
    
  
PD 
 Código PHP:
    $link = mysqli_connect("localhost", "my_user", "my_password", "world");
 
$query = "SELECT * FROM xx LIMIT 0, 10";
 
if ($result = mysqli_query($link, $query))
{
 
    /* obtener array asociativo */
    while ($row = mysqli_fetch_assoc($result))
    {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }
 
    /* liberar el conjunto de resultados */
    mysqli_free_result($result);
}
 
/* cerrar la conexión */
mysqli_close($link); 
    
  el problema del LINK y los las funciones, para evitar tener que re-declarar "global $link" dentro de una función, puedes usar una variable "global", aunque si usas plugins de terceros, no es muy recomendable   
 Código PHP:
    $GLOBALS['link'] = mysqli_connect("localhost", "my_user", "my_password", "world");
 
// y luego...
 
$result = mysqli_query($GLOBALS['link'], $query) 
    
  espero haber ayudado, suerte con la portacion!