2012-07-19 15 views
11

Estoy moviendo un sistema heredado que no creé de un servidor (php 5.2) a uno más nuevo (php 5.3) y una gran parte del sistema usa session_unregister. Aprecio que esto ya no se usa en 5.3, así que ¿debo continuar y reemplazar todos los casos por unset ($ _ SESSION ['myVar']) o esto causará que algo se rompa?Reemplazando session_unregister con unset()

Aún mejor, ¿existe una alternativa que logra la misma función que requiero, si unset() no es la correcta

+5

+1 para la eliminación de funciones obsoletas. 'unset ($ _ SESSION ['key'])' debería estar bien. –

Respuesta

13

Puede desarmar sesión específica vars utilizando unset($_SESSION['yourvar']);, pero la mente esta parte del manual :

NO desarmar el conjunto $ _SESSION con unset ($ _SESSION) ya que esto desactivar el registro de las variables de sesión a través de la $ _SESSION superglobal.

(a partir de: http://php.net/manual/en/function.session-unset.php)

+0

Bien, gracias, ¿está desarmada() la mejor manera de hacerlo? (Solo quiero asegurarme de que no estoy reemplazando el código incorrecto con más código incorrecto) – Andy

+1

Sí lo es: la nota en el manual incluso lo sugiere, justo encima de la parte amarilla de advertencia. – Nanne

+0

Gracias ... Leí el boletín nuevamente y entendí eso. Comentario borrado. Para las pasas histéricas: He colocado un enlace a la wiki de desaprobación del proyecto PHP que muestra que el "modelo unset" ha quedado en desuso, pero no la función/método unset() en sí. Nanne señaló mi error y he eliminado el comentario anterior al que estaba respondiendo. –