Lib\Think\Util\Session.class.php的NOTIC错误提示及解决方法

浏览:342 发布日期:2011/06/08
- 普通 - 未处理
Lib\Think\Util\Session.class.php中的getLocal()方法存在NOTIC警告问题。

使用Session::getLocal('xxxx'),当xxxx不存在时,此函数会报出
“NOTIC: [8] Undefined index: xxxx Session.class.php 第 399 行”的错误提示。 
/**
+----------------------------------------------------------
* 取得当前项目的Session 值
* 返回之前设置
+----------------------------------------------------------
* @param string $name
+----------------------------------------------------------
* @static
* @access public
+----------------------------------------------------------
* @return boolean
+----------------------------------------------------------
*/
static function getLocal($name)
{
$local = Session::localName();
if (!is_array($_SESSION[$local])) {
     $_SESSION[$local] = array();
}
return $_SESSION[$local][$name];
}
阅读Session.class.php源码发现,正是“return $_SESSION[$local][$name];”这句导致的问题。
TP2.0、TP2.1都有这个问题,希望老大尽快解决,^_^。

我个人简单修改了一下getLocal()方法,解决了问题。static function getLocal($name)
{
$local = Session::localName();
if (!isset($_SESSION[$local]) || !is_array($_SESSION[$local])) {
     $_SESSION[$local] = array();
}
return Session::is_setLocal($name) ? $_SESSION[$local][$name] : null;
}
评论(
后面还有条评论,点击查看>>