Cita:
Iniciado por guardarmicorreo y lo que quiero es darle al usuario la posibilidad de que si se desloguea solo borre su sesion de usuario, no su sesion del carrito de compra.
No hay una "sesion de usuario" y una "sesion de carrito".Hay una sesión.
Suponiendo que pudieras borrar la sesion de usuario, y no de su carrito...Cómo
sabrías de quién es el carrito?
Antes de destruir la sesión, guarda en base de datos el carrito.
Cita:
Iniciado por guardarmicorreo en la documentación de php me recomienda que si utilizo $_SESSION es mejor borrar sesiones específicas, efectivamente era lo que yo buscaba.
No sé dónde has leído sobre "sesiones específicas".
Cita:
Iniciado por guardarmicorreo deducí que ese era el error, que al borrar $_SESSION("usuario"); dentro de una función estaba borrando un $_SESSION local y no el global.
$_SESSION no es ni global ni local.Es una superglobal.Puedes usarla en cualquier
sitio, como una global, sin especificar su ámbito, como una local.
Cita:
Iniciado por guardarmicorreo ¿es acertado borrar la variable $_SESSION["usuario"] con unset($GLOBAL("usuario"))?
No.Usa $_SESSION.
Cita:
Iniciado por guardarmicorreo ¿si la variable $_SESSION["usuario"] la creé a partir de un valor obtenido por consulta a mysql dentro de una función cómo es que pasa a ser global y no local?
Porque ese valor se lo has asignado a una variable superglobal.